{
  "title": "Dragino Lora Sensors Overview",
  "image": null,
  "mobileHide": false,
  "mobileOrder": null,
  "configuration": {
    "description": "",
    "widgets": {
      "e998fe3e-5df5-1e66-ec58-05855bf52e7c": {
        "typeFullFqn": "system.entity_admin_widgets.device_admin_table",
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1727322964355,
                "endTimeMs": 1727409364355
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "Dragino Share Devices",
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "showCellActionsMenu": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": false,
            "entityNameColumnTitle": "",
            "displayEntityLabel": false,
            "entityLabelColumnTitle": "",
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "entityName",
            "useRowStyleFunction": false,
            "rowStyleFunction": ""
          },
          "title": "Device admin table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "adf15d69-d5da-bfe3-57e1-3ee65ef5c03c",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6054900053017533
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.6808220785464496
                },
                {
                  "name": "createdTime",
                  "type": "entityField",
                  "label": "Created time",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.02441085312040614
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "showTitleIcon": false,
          "titleIcon": "more_horiz",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "widgetStyle": {},
          "displayTimewindow": true,
          "actions": {
            "headerButton": [
              {
                "name": "Add device",
                "icon": "add",
                "type": "customPretty",
                "customHtml": "<form #addDeviceForm=\"ngForm\" [formGroup]=\"addDeviceFormGroup\"\n      (ngSubmit)=\"save()\" style=\"width: 480px;\">\n  <mat-toolbar fxLayout=\"row\" color=\"primary\">\n    <h2>Add device</h2>\n    <span fxFlex></span>\n    <button mat-icon-button\n            (click)=\"cancel()\"\n            type=\"button\">\n      <mat-icon class=\"material-icons\">close</mat-icon>\n    </button>\n  </mat-toolbar>\n  <mat-progress-bar color=\"warn\" mode=\"indeterminate\" *ngIf=\"isLoading$ | async\">\n  </mat-progress-bar>\n  <div style=\"height: 4px;\" *ngIf=\"!(isLoading$ | async)\"></div>\n  <div mat-dialog-content>\n      <div class=\"mat-padding\" fxLayout=\"column\">\n            <mat-form-field class=\"mat-block\">\n                <mat-label>Device name</mat-label>\n                <input matInput formControlName=\"deviceName\" required>\n                <mat-error *ngIf=\"addDeviceFormGroup.get('deviceName').hasError('required')\">\n                    Device name is required.\n                </mat-error>\n            </mat-form-field>\n            <div fxLayout=\"row\" fxLayoutGap=\"8px\">\n                <tb-entity-subtype-autocomplete\n                    fxFlex=\"50\"\n                    formControlName=\"deviceType\"\n                    [required]=\"true\"\n                    [entityType]=\"'DEVICE'\"\n                ></tb-entity-subtype-autocomplete>\n                <mat-form-field fxFlex=\"50\" class=\"mat-block\">\n                    <mat-label>Label</mat-label>\n                    <input matInput formControlName=\"deviceLabel\">\n                </mat-form-field>\n            </div>\n            <div formGroupName=\"attributes\" fxLayout=\"row\" fxLayoutGap=\"8px\">\n                <mat-form-field fxFlex=\"50\" class=\"mat-block\">\n                    <mat-label>Latitude</mat-label>\n                    <input type=\"number\" step=\"any\" matInput formControlName=\"latitude\">\n                </mat-form-field>\n                <mat-form-field fxFlex=\"50\" class=\"mat-block\">\n                    <mat-label>Longitude</mat-label>\n                    <input type=\"number\" step=\"any\" matInput formControlName=\"longitude\">\n                </mat-form-field>\n            </div>\n      </div>  \n  </div>\n  <div mat-dialog-actions fxLayout=\"row\">\n    <span fxFlex></span>\n    <button mat-button color=\"primary\"\n            type=\"button\"\n            [disabled]=\"(isLoading$ | async)\"\n            (click)=\"cancel()\" cdkFocusInitial>\n      Cancel\n    </button>\n    <button mat-button mat-raised-button color=\"primary\"\n            style=\"margin-right: 20px;\"\n            type=\"submit\"\n            [disabled]=\"(isLoading$ | async) || addDeviceForm.invalid || !addDeviceForm.dirty\">\n      Create\n    </button>\n  </div>\n</form>\n",
                "customCss": "",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet customDialog = $injector.get(widgetContext.servicesMap.get('customDialog'));\nlet deviceService = $injector.get(widgetContext.servicesMap.get('deviceService'));\nlet attributeService = $injector.get(widgetContext.servicesMap.get('attributeService'));\n\nopenAddDeviceDialog();\n\nfunction openAddDeviceDialog() {\n    customDialog.customDialog(htmlTemplate, AddDeviceDialogController).subscribe();\n}\n\nfunction AddDeviceDialogController(instance) {\n    let vm = instance;\n    \n    vm.addDeviceFormGroup = vm.fb.group({\n      deviceName: ['', [vm.validators.required]],\n      deviceType: ['', [vm.validators.required]],\n      deviceLabel: [''],\n      attributes: vm.fb.group({\n          latitude: [null],\n          longitude: [null]\n      })      \n    });\n    \n    vm.cancel = function() {\n        vm.dialogRef.close(null);\n    };\n    \n    vm.save = function() {\n        vm.addDeviceFormGroup.markAsPristine();\n        let device = {\n            name: vm.addDeviceFormGroup.get('deviceName').value,\n            type: vm.addDeviceFormGroup.get('deviceType').value,\n            label: vm.addDeviceFormGroup.get('deviceLabel').value\n        };\n        deviceService.saveDevice(device).subscribe(\n            function (device) {\n                saveAttributes(device.id).subscribe(\n                    function () {\n                        widgetContext.updateAliases();\n                        vm.dialogRef.close(null);\n                    }\n                );\n            }\n        );\n    };\n    \n    function saveAttributes(entityId) {\n        let attributes = vm.addDeviceFormGroup.get('attributes').value;\n        let attributesArray = [];\n        for (let key in attributes) {\n            attributesArray.push({key: key, value: attributes[key]});\n        }\n        if (attributesArray.length > 0) {\n            return attributeService.saveEntityAttributes(entityId, \"SERVER_SCOPE\", attributesArray);\n        } else {\n            return widgetContext.rxjs.of([]);\n        }\n    }\n}",
                "customResources": [],
                "id": "70837a9d-c3de-a9a7-03c5-dccd14998758"
              }
            ],
            "actionCellButton": [
              {
                "name": "Edit device",
                "icon": "edit",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "customPretty",
                "customHtml": "<form #editDeviceForm=\"ngForm\" [formGroup]=\"editDeviceFormGroup\"\n      (ngSubmit)=\"save()\" style=\"width: 480px;\">\n  <mat-toolbar fxLayout=\"row\" color=\"primary\">\n    <h2>Edit device</h2>\n    <span fxFlex></span>\n    <button mat-icon-button\n            (click)=\"cancel()\"\n            type=\"button\">\n      <mat-icon class=\"material-icons\">close</mat-icon>\n    </button>\n  </mat-toolbar>\n  <mat-progress-bar color=\"warn\" mode=\"indeterminate\" *ngIf=\"isLoading$ | async\">\n  </mat-progress-bar>\n  <div style=\"height: 4px;\" *ngIf=\"!(isLoading$ | async)\"></div>\n  <div mat-dialog-content>\n      <div class=\"mat-padding\" fxLayout=\"column\">\n            <mat-form-field class=\"mat-block\">\n                <mat-label>Device name</mat-label>\n                <input matInput formControlName=\"deviceName\" required>\n                <mat-error *ngIf=\"editDeviceFormGroup.get('deviceName').hasError('required')\">\n                    Device name is required.\n                </mat-error>\n            </mat-form-field>\n            <div fxLayout=\"row\" fxLayoutGap=\"8px\">\n                <tb-entity-subtype-autocomplete\n                    fxFlex=\"50\"\n                    formControlName=\"deviceType\"\n                    [required]=\"true\"\n                    [entityType]=\"'DEVICE'\"\n                ></tb-entity-subtype-autocomplete>\n                <mat-form-field fxFlex=\"50\" class=\"mat-block\">\n                    <mat-label>Label</mat-label>\n                    <input matInput formControlName=\"deviceLabel\">\n                </mat-form-field>\n            </div>\n            <div formGroupName=\"attributes\" fxLayout=\"row\" fxLayoutGap=\"8px\">\n                <mat-form-field fxFlex=\"50\" class=\"mat-block\">\n                    <mat-label>Latitude</mat-label>\n                    <input type=\"number\" step=\"any\" matInput formControlName=\"latitude\">\n                </mat-form-field>\n                <mat-form-field fxFlex=\"50\" class=\"mat-block\">\n                    <mat-label>Longitude</mat-label>\n                    <input type=\"number\" step=\"any\" matInput formControlName=\"longitude\">\n                </mat-form-field>\n            </div>\n      </div>  \n  </div>\n  <div mat-dialog-actions fxLayout=\"row\">\n    <span fxFlex></span>\n    <button mat-button color=\"primary\"\n            type=\"button\"\n            [disabled]=\"(isLoading$ | async)\"\n            (click)=\"cancel()\" cdkFocusInitial>\n      Cancel\n    </button>\n    <button mat-button mat-raised-button color=\"primary\"\n            style=\"margin-right: 20px;\"\n            type=\"submit\"\n            [disabled]=\"(isLoading$ | async) || editDeviceForm.invalid || !editDeviceForm.dirty\">\n      Update\n    </button>\n  </div>\n</form>\n",
                "customCss": "",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet customDialog = $injector.get(widgetContext.servicesMap.get('customDialog'));\nlet deviceService = $injector.get(widgetContext.servicesMap.get('deviceService'));\nlet attributeService = $injector.get(widgetContext.servicesMap.get('attributeService'));\n\nopenEditDeviceDialog();\n\nfunction openEditDeviceDialog() {\n    customDialog.customDialog(htmlTemplate, EditDeviceDialogController).subscribe();\n}\n\nfunction EditDeviceDialogController(instance) {\n    let vm = instance;\n    \n    vm.device = null;\n    vm.attributes = {};\n    \n    vm.editDeviceFormGroup = vm.fb.group({\n      deviceName: ['', [vm.validators.required]],\n      deviceType: ['', [vm.validators.required]],\n      deviceLabel: [''],\n      attributes: vm.fb.group({\n          latitude: [null],\n          longitude: [null]\n      })      \n    });\n    \n    vm.cancel = function() {\n        vm.dialogRef.close(null);\n    };\n    \n    vm.save = function() {\n        vm.editDeviceFormGroup.markAsPristine();\n        if (vm.editDeviceFormGroup.get('deviceType').value !== vm.device.type) {\n            delete vm.device.deviceProfileId;\n        }\n        //vm.device.name = vm.editDeviceFormGroup.get('deviceName').value,\n        //vm.device.type = vm.editDeviceFormGroup.get('deviceType').value,\n       // vm.device.label = vm.editDeviceFormGroup.get('deviceLabel').value\n        deviceService.saveDevice(vm.device).subscribe(\n            function () {\n                saveAttributes().subscribe(\n                    function () {\n                        widgetContext.updateAliases();\n                        vm.dialogRef.close(null);\n                    }\n                );\n            }\n        );\n    };\n    \n    getEntityInfo();\n    \n    function getEntityInfo() {\n        deviceService.getDevice(entityId.id).subscribe(\n            function (device) {\n                attributeService.getEntityAttributes(entityId, 'SERVER_SCOPE',\n                                                    ['latitude', 'longitude']).subscribe(\n                   function (attributes) {\n                        for (let i = 0; i < attributes.length; i++) {\n                            vm.attributes[attributes[i].key] = attributes[i].value; \n                        }\n                        vm.device = device;\n                        vm.editDeviceFormGroup.patchValue(\n                            {\n                                deviceName: vm.device.name,\n                                deviceType: vm.device.type,\n                                deviceLabel: vm.device.label,\n                                attributes: {\n                                    latitude: vm.attributes.latitude,\n                                    longitude: vm.attributes.longitude\n                                }\n                            }, {emitEvent: false}\n                        );\n                   } \n                );\n            }\n        );    \n    }\n    \n    function saveAttributes() {\n        let attributes = vm.editDeviceFormGroup.get('attributes').value;\n        let attributesArray = [];\n        for (let key in attributes) {\n            attributesArray.push({key: key, value: attributes[key]});\n        }\n        if (attributesArray.length > 0) {\n            return attributeService.saveEntityAttributes(entityId, 'SERVER_SCOPE', attributesArray);\n        } else {\n            return widgetContext.rxjs.of([]);\n        }\n    }\n}",
                "customResources": [],
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "93931e52-5d7c-903e-67aa-b9435df44ff4"
              },
              {
                "name": "Delete device",
                "icon": "delete",
                "type": "custom",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet dialogs = $injector.get(widgetContext.servicesMap.get('dialogs'));\nlet deviceService = $injector.get(widgetContext.servicesMap.get('deviceService'));\n\nopenDeleteDeviceDialog();\n\nfunction openDeleteDeviceDialog() {\n    let title = \"Are you sure you want to delete the device \" + entityName +  \"?\";\n    let content = \"Be careful, after the confirmation, the device and all related data will become unrecoverable!\";\n    dialogs.confirm(title, content, 'Cancel', 'Delete').subscribe(\n        function (result) {\n            if (result) {\n                deleteDevice();\n            }\n        }\n    );\n}\n\nfunction deleteDevice() {\n    deviceService.deleteDevice(entityId.id).subscribe(\n        function () {\n            widgetContext.updateAliases();\n        }\n    );\n}\n",
                "id": "ec2708f6-9ff0-186b-e4fc-7635ebfa3074"
              }
            ],
            "rowClick": [
              {
                "name": "Device_Level",
                "icon": "more_horiz",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "var entitySubType;\r\nvar $injector = widgetContext.$scope.$injector;\r\n\r\n$injector\r\n    .get(widgetContext.servicesMap.get('entityService'))\r\n    .getEntity(entityId.entityType, entityId.id)\r\n    .subscribe(function(data) {\r\n        \r\n    var rawType = data.type.trim();\r\n    var entitySubType = rawType.replace(/^Dragino\\s+/i, '').replace(/-LR$/i, '');\r\n        \r\n    switch (entitySubType) {\r\n        \r\n      case \"ais01-lb\":\r\n        openDashboardStates('ais01-lb');\r\n        break;\r\n\r\n      case \"aqs01-l\":\r\n        openDashboardStates('aqs01-l');\r\n        break;\r\n\r\n      case \"aqs02-l\":\r\n        openDashboardStates('aqs02-l');\r\n        break;\r\n\r\n      case \"cpl01\":\r\n        openDashboardStates('cpl01');\r\n        break;\r\n\r\n      case \"cpl03\":\r\n        openDashboardStates('cpl03');\r\n        break;\r\n\r\n      case \"cpl03-lb\":\r\n        openDashboardStates('cpl03-lb');\r\n        break;\r\n\r\n      case \"cs01-lb\":\r\n        openDashboardStates('cs01-lb');\r\n        break;\r\n\r\n      case \"d20-lb\":\r\n        openDashboardStates('d20-lb');\r\n        break;\r\n\r\n      case \"d20s-lb\":\r\n        openDashboardStates('d20s-lb');\r\n        break;\r\n\r\n      case \"d22-lb\":\r\n        openDashboardStates('d22-lb');\r\n        break;\r\n\r\n      case \"d23-lb\":\r\n        openDashboardStates('d23-lb');\r\n        break;\r\n\r\n      case \"dds04-lb\":\r\n        openDashboardStates('dds04-lb');\r\n        break;\r\n\r\n      case \"dds20-lb\":\r\n        openDashboardStates('dds20-lb');\r\n        break;\r\n\r\n      case \"dds45-lb\":\r\n        openDashboardStates('dds45-lb');\r\n        break;\r\n\r\n      case \"dds75-lb\":\r\n        openDashboardStates('dds75-lb');\r\n        break;\r\n\r\n      case \"ds03a-lb\":\r\n        openDashboardStates('ds03a-lb');\r\n        break;\r\n\r\n      case \"ds20l\":\r\n        openDashboardStates('ds20l');\r\n        break;\r\n\r\n      case \"gro-point-air\":\r\n        openDashboardStates('gro-point-air');\r\n        break;\r\n\r\n      case \"laq4\":\r\n        openDashboardStates('laq4');\r\n        break;\r\n\r\n      case \"lbt1\":\r\n        openDashboardStates('lbt1');\r\n        break;\r\n\r\n      case \"lcc01-lb\":\r\n        openDashboardStates('lcc01-lb');\r\n        break;\r\n\r\n      case \"ldds04\":\r\n        openDashboardStates('ldds04');\r\n        break;\r\n\r\n      case \"ldds20\":\r\n        openDashboardStates('ldds20');\r\n        break;\r\n\r\n      case \"ldds45\":\r\n        openDashboardStates('ldds45');\r\n        break;\r\n\r\n      case \"ldds75\":\r\n        openDashboardStates('ldds75');\r\n        break;\r\n\r\n      case \"lds02\":\r\n        openDashboardStates('lds02');\r\n        break;\r\n\r\n      case \"lds03a\":\r\n        openDashboardStates('lds03a');\r\n        break;\r\n\r\n      case \"lds12-lb\":\r\n        openDashboardStates('lds12-lb');\r\n        break;\r\n\r\n      case \"lds40-lb\":\r\n        openDashboardStates('lds40-lb');\r\n        break;\r\n\r\n      case \"lht52\":\r\n        openDashboardStates('lht52');\r\n        break;\r\n\r\n      case \"lht65\":\r\n        openDashboardStates('lht65');\r\n        break;\r\n\r\n      case \"lht65n\":\r\n        openDashboardStates('lht65n');\r\n        break;\r\n\r\n      case \"lht65n-pir\":\r\n        openDashboardStates('lht65n-pir');\r\n        break;\r\n\r\n      case \"lht65n-vib\":\r\n        openDashboardStates('lht65n-vib');\r\n        break;\r\n\r\n      case \"llds12\":\r\n        openDashboardStates('llds12');\r\n        break;\r\n\r\n      case \"llds40\":\r\n        openDashboardStates('llds40');\r\n        break;\r\n\r\n      case \"llms01\":\r\n        openDashboardStates('llms01');\r\n        break;\r\n\r\n      case \"lmds120\":\r\n        openDashboardStates('lmds120');\r\n        break;\r\n\r\n      case \"lmds200\":\r\n        openDashboardStates('lmds200');\r\n        break;\r\n\r\n      case \"lms01-lb\":\r\n        openDashboardStates('lms01-lb');\r\n        break;\r\n\r\n      case \"lse01\":\r\n        openDashboardStates('lse01');\r\n        break;\r\n\r\n      case \"lse01-114\":\r\n        openDashboardStates('lse01-114');\r\n        break;\r\n\r\n      case \"lse01-121\":\r\n        openDashboardStates('lse01-121');\r\n        break;\r\n\r\n      case \"lsn50\":\r\n        openDashboardStates('lsn50');\r\n        break;\r\n\r\n      case \"lsn50v2\":\r\n        openDashboardStates('lsn50v2');\r\n        break;\r\n\r\n      case \"lsn50v2-8\":\r\n        openDashboardStates('lsn50v2-8');\r\n        break;\r\n\r\n      case \"lsn50v2-d20\":\r\n        openDashboardStates('lsn50v2-d20');\r\n        break;\r\n\r\n      case \"lsn50v2-d22\":\r\n        openDashboardStates('lsn50v2-d22');\r\n        break;\r\n\r\n      case \"lsn50v2-d23\":\r\n        openDashboardStates('lsn50v2-d23');\r\n        break;\r\n\r\n      case \"lsn50v2-s31\":\r\n        openDashboardStates('lsn50v2-s31');\r\n        break;\r\n\r\n      case \"lsnpk01\":\r\n        openDashboardStates('lsnpk01');\r\n        break;\r\n\r\n      case \"lsph01\":\r\n        openDashboardStates('lsph01');\r\n        break;\r\n\r\n      case \"lt22222-l\":\r\n        openDashboardStates('lt22222-l');\r\n        break;\r\n\r\n      case \"lt33222-l\":\r\n        openDashboardStates('lt33222-l');\r\n        break;\r\n\r\n      case \"ltc2\":\r\n        openDashboardStates('ltc2');\r\n        break;\r\n\r\n      case \"ltc2-lb\":\r\n        openDashboardStates('ltc2-lb');\r\n        break;\r\n\r\n      case \"lwl02\":\r\n        openDashboardStates('lwl02');\r\n        break;\r\n\r\n      case \"lwl03a\":\r\n        openDashboardStates('lwl03a');\r\n        break;\r\n\r\n      case \"lwl04-lb\":\r\n        openDashboardStates('lwl04-lb');\r\n        break;\r\n\r\n      case \"mds120-lb\":\r\n        openDashboardStates('mds120-lb');\r\n        break;\r\n\r\n      case \"mds200-lb\":\r\n        openDashboardStates('mds200-lb');\r\n        break;\r\n\r\n      case \"pb01-l\":\r\n        openDashboardStates('pb01-l');\r\n        break;\r\n\r\n      case \"ps-lb\":\r\n        openDashboardStates('ps-lb');\r\n        break;\r\n\r\n      case \"rs485-bl\":\r\n        openDashboardStates('rs485-bl');\r\n        break;\r\n\r\n      case \"rs485-lb\":\r\n        openDashboardStates('rs485-lb');\r\n        break;\r\n\r\n      case \"rs485-ln\":\r\n        openDashboardStates('rs485-ln');\r\n        break;\r\n\r\n      case \"s31b-l\":\r\n        openDashboardStates('s31b-l');\r\n        break;\r\n\r\n      case \"s31-l\":\r\n        openDashboardStates('s31-l');\r\n        break;\r\n\r\n      case \"sac01-l\":\r\n        openDashboardStates('sac01-l');\r\n        break;\r\n\r\n      case \"sdi-12-lb\":\r\n        openDashboardStates('sdi-12-lb');\r\n        break;\r\n\r\n      case \"se01-lb\":\r\n        openDashboardStates('se01-lb');\r\n        break;\r\n\r\n      case \"se02-lb\":\r\n        openDashboardStates('se02-lb');\r\n        break;\r\n\r\n      case \"sn50v3-lb\":\r\n        openDashboardStates('sn50v3-lb');\r\n        break;\r\n\r\n      case \"sph01-lb\":\r\n        openDashboardStates('sph01-lb');\r\n        break;\r\n\r\n      case \"sw3l-l\":\r\n        openDashboardStates('sw3l-l');\r\n        break;\r\n\r\n      case \"tc01-lb\":\r\n        openDashboardStates('tc01-lb');\r\n        break;\r\n\r\n      case \"trackerd\":\r\n        openDashboardStates('trackerd');\r\n        break;\r\n\r\n      case \"ts01-lb\":\r\n        openDashboardStates('ts01-lb');\r\n        break;\r\n\r\n      case \"uv254-lb\":\r\n        openDashboardStates('uv254-lb');\r\n        break;\r\n\r\n      case \"wl03a-lb\":\r\n        openDashboardStates('wl03a-lb');\r\n        break;\r\n\r\n      case \"wqs-lb\":\r\n        openDashboardStates('wqs-lb');\r\n        break;\r\n\r\n      case \"wsc1-l\":\r\n        openDashboardStates('wsc1-l');\r\n        break;\r\n\r\n      case \"wsc2-lb\":\r\n        openDashboardStates('wsc2-lb');\r\n        break;\r\n\r\n      default:\r\n        console.warn('Unknown device type:', entitySubType);\r\n    }\r\n  });\r\n\r\nfunction openDashboardStates(stateId) {\r\n    var stateParams = widgetContext.stateController.getStateParams();\r\n    var params = {\r\n        entityId: entityId,\r\n        entityName: entityName\r\n    };\r\n    if (stateParams.city) {\r\n        params.city = stateParams.city;\r\n    }\r\n    widgetContext.stateController.openState(stateId, params, false);\r\n}",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "5a6ef900-4a89-5430-8ee5-99ddc6cebec7"
              }
            ]
          },
          "configMode": "advanced",
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "e998fe3e-5df5-1e66-ec58-05855bf52e7c"
      },
      "69a0588f-d5d1-de2e-3755-14ee41fd0bcb": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "69a0588f-d5d1-de2e-3755-14ee41fd0bcb"
      },
      "4338a4b4-45ed-3d13-41c6-304cee3b43ac": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.8039028735565856,
                  "units": "°C",
                  "decimals": 3
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "4338a4b4-45ed-3d13-41c6-304cee3b43ac"
      },
      "0a639a76-ecb5-7338-f063-b5fcc91c6806": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "0a639a76-ecb5-7338-f063-b5fcc91c6806"
      },
      "562e90db-612b-a3a0-0ca8-bfb4c39020cf": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "562e90db-612b-a3a0-0ca8-bfb4c39020cf"
      },
      "a224c10b-eb13-5cee-7ea4-3d49302d81bc": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "roll",
                  "type": "timeseries",
                  "label": "Roll",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7654440528740354,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728453110621,
                "endTimeMs": 1728539510621
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "auto_graph",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "a224c10b-eb13-5cee-7ea4-3d49302d81bc"
      },
      "bb384c5f-fd9f-2eac-92ef-83f09afa2b1e": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "pitch",
                  "type": "timeseries",
                  "label": "Pitch",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7654440528740354,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728453110621,
                "endTimeMs": 1728539510621
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "auto_graph",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "bb384c5f-fd9f-2eac-92ef-83f09afa2b1e"
      },
      "c2e54ff2-069a-de89-60ba-394222ee7a2f": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "c2e54ff2-069a-de89-60ba-394222ee7a2f"
      },
      "7e9f257b-7554-193b-b61f-420f92d36235": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.8039028735565856,
                  "units": "°C",
                  "decimals": 3
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "7e9f257b-7554-193b-b61f-420f92d36235"
      },
      "13c58e81-72a0-53b5-c7d1-f64090cc4ad8": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "13c58e81-72a0-53b5-c7d1-f64090cc4ad8"
      },
      "3964303b-c3f3-fa0e-af7d-8b2270effbd1": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "3964303b-c3f3-fa0e-af7d-8b2270effbd1"
      },
      "90ac5a86-d131-e578-63ff-02e749953866": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "roll",
                  "type": "timeseries",
                  "label": "Roll",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7654440528740354,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728453110621,
                "endTimeMs": 1728539510621
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "auto_graph",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "90ac5a86-d131-e578-63ff-02e749953866"
      },
      "d85f53a5-8758-3480-03dd-5b1ee3e55407": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "pitch",
                  "type": "timeseries",
                  "label": "Pitch",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7654440528740354,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728453110621,
                "endTimeMs": 1728539510621
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "auto_graph",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "d85f53a5-8758-3480-03dd-5b1ee3e55407"
      },
      "b8bc8060-dac6-ea8a-dcb9-22d749ad4eb9": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "b8bc8060-dac6-ea8a-dcb9-22d749ad4eb9"
      },
      "ed23fd94-3c34-5c33-5f50-e0f5b58b08bb": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.8039028735565856,
                  "units": "°C",
                  "decimals": 3
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "ed23fd94-3c34-5c33-5f50-e0f5b58b08bb"
      },
      "2ce1bf3b-18d1-46ee-ac04-38a5306cec6f": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "2ce1bf3b-18d1-46ee-ac04-38a5306cec6f"
      },
      "583abaf4-fe24-f97d-6349-935d87d0ac3b": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "583abaf4-fe24-f97d-6349-935d87d0ac3b"
      },
      "221a4ef9-941e-3854-b650-753625cf15ae": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "roll",
                  "type": "timeseries",
                  "label": "Roll",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7654440528740354,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728453110621,
                "endTimeMs": 1728539510621
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "auto_graph",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "221a4ef9-941e-3854-b650-753625cf15ae"
      },
      "d670c869-2702-625b-937a-900990abe198": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "pitch",
                  "type": "timeseries",
                  "label": "Pitch",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7654440528740354,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728453110621,
                "endTimeMs": 1728539510621
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "auto_graph",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "d670c869-2702-625b-937a-900990abe198"
      },
      "96fe962e-0023-248f-ace4-55f78e4c94c6": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "96fe962e-0023-248f-ace4-55f78e4c94c6"
      },
      "4a5a4065-a348-ae73-c216-29184445d80e": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "work mode",
                  "type": "timeseries",
                  "label": "Work mode",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "visibility",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "4a5a4065-a348-ae73-c216-29184445d80e"
      },
      "88ec9082-a800-0d59-340f-9d71f154ebe4": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "tdc send flag",
                  "type": "timeseries",
                  "label": "tdc send flag",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "notifications_active",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "88ec9082-a800-0d59-340f-9d71f154ebe4"
      },
      "c61c42fa-c520-56e7-db36-0bbdfa7009fc": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "count_mode",
                  "type": "timeseries",
                  "label": "Count_mode",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "visibility",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "c61c42fa-c520-56e7-db36-0bbdfa7009fc"
      },
      "9cdb144b-c214-1f76-ad2d-0abbe9557794": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "trigger mode",
                  "type": "timeseries",
                  "label": "Trigger mode",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "visibility",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "9cdb144b-c214-1f76-ad2d-0abbe9557794"
      },
      "afea88dc-02ab-2462-8fef-9a4988cb6aaa": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "alarm",
                  "type": "timeseries",
                  "label": "Alarm",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "alarm",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "afea88dc-02ab-2462-8fef-9a4988cb6aaa"
      },
      "804b08c8-9ef2-df52-7573-f1441d8d8689": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "pa8 level status",
                  "type": "timeseries",
                  "label": "Pa8 level status",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "insert_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "804b08c8-9ef2-df52-7573-f1441d8d8689"
      },
      "e82e348f-6350-1849-5242-53c57dab7af1": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "door duration",
                  "type": "timeseries",
                  "label": "Door duration",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "query_builder",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "e82e348f-6350-1849-5242-53c57dab7af1"
      },
      "b5526af1-b69a-69ab-6f4d-ea845e5fa8f2": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "count time",
                  "type": "timeseries",
                  "label": "Count time",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "watch_later",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "b5526af1-b69a-69ab-6f4d-ea845e5fa8f2"
      },
      "03a3db50-7cba-1d1f-ccf2-d73c03192a35": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "03a3db50-7cba-1d1f-ccf2-d73c03192a35"
      },
      "3f815805-12e3-ba0a-37e0-a6fc23d9d15a": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "3f815805-12e3-ba0a-37e0-a6fc23d9d15a"
      },
      "a4fddb41-947f-5ab9-1776-ef21e7d9634e": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "a4fddb41-947f-5ab9-1776-ef21e7d9634e"
      },
      "3076e70f-35d2-b497-80ca-2d0774ed608a": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "3076e70f-35d2-b497-80ca-2d0774ed608a"
      },
      "39e193fb-f2f6-6461-72c8-6bb050097fdb": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "work mode",
                  "type": "timeseries",
                  "label": "Work mode",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "visibility",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "39e193fb-f2f6-6461-72c8-6bb050097fdb"
      },
      "371818ba-7dbd-03d2-d634-f68088852cd4": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "tdc send flag",
                  "type": "timeseries",
                  "label": "tdc send flag",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "notifications_active",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "371818ba-7dbd-03d2-d634-f68088852cd4"
      },
      "54353722-1f37-9918-7fd1-128cabe604c8": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "count_mode",
                  "type": "timeseries",
                  "label": "Count_mode",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "visibility",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "54353722-1f37-9918-7fd1-128cabe604c8"
      },
      "feec0fd1-65e8-195b-430f-06eff37ba7b8": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "trigger mode",
                  "type": "timeseries",
                  "label": "Trigger mode",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "visibility",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "feec0fd1-65e8-195b-430f-06eff37ba7b8"
      },
      "7594139f-7018-c4b7-1b75-8f88a439e076": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "alarm",
                  "type": "timeseries",
                  "label": "Alarm",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "alarm",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "7594139f-7018-c4b7-1b75-8f88a439e076"
      },
      "6e96af22-0189-7dfc-437c-ba1e19e7084c": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "pa8 level status",
                  "type": "timeseries",
                  "label": "Pa8 level status",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "insert_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "6e96af22-0189-7dfc-437c-ba1e19e7084c"
      },
      "bee3bb9f-7871-ec68-55e6-f80ad8c4014c": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "door duration",
                  "type": "timeseries",
                  "label": "Door duration",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "query_builder",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "bee3bb9f-7871-ec68-55e6-f80ad8c4014c"
      },
      "4e22dade-6a5c-77c8-e757-250ba6c74ef9": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "count time",
                  "type": "timeseries",
                  "label": "Count time",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "watch_later",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "4e22dade-6a5c-77c8-e757-250ba6c74ef9"
      },
      "6723545e-445d-0112-a09c-3a42b5c046a7": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "6723545e-445d-0112-a09c-3a42b5c046a7"
      },
      "b30f53b9-34ac-fa39-d948-e522d3c182c2": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "b30f53b9-34ac-fa39-d948-e522d3c182c2"
      },
      "664ae9a2-d3f7-201b-f929-cd894c3474fb": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "664ae9a2-d3f7-201b-f929-cd894c3474fb"
      },
      "5c9506e9-fcab-a204-15c4-6fec0d5df03e": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "5c9506e9-fcab-a204-15c4-6fec0d5df03e"
      },
      "7004256d-90f3-8c88-0ddf-c4b441ac504f": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "work mode",
                  "type": "timeseries",
                  "label": "Work mode",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "visibility",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "7004256d-90f3-8c88-0ddf-c4b441ac504f"
      },
      "94fa8063-e7a2-3ef5-0dda-1110f34461aa": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "tdc send flag",
                  "type": "timeseries",
                  "label": "tdc send flag",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "notifications_active",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "94fa8063-e7a2-3ef5-0dda-1110f34461aa"
      },
      "8ed21e38-d756-2400-2346-ea21fd9339e3": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "count_mode",
                  "type": "timeseries",
                  "label": "Count_mode",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "visibility",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "8ed21e38-d756-2400-2346-ea21fd9339e3"
      },
      "e85310ce-9f9f-edba-416a-022e2d1fbaff": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "trigger mode",
                  "type": "timeseries",
                  "label": "Trigger mode",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "visibility",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "e85310ce-9f9f-edba-416a-022e2d1fbaff"
      },
      "b43d370a-f53f-6adb-c508-b9bc45d2caa4": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "alarm",
                  "type": "timeseries",
                  "label": "Alarm",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "alarm",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "b43d370a-f53f-6adb-c508-b9bc45d2caa4"
      },
      "d5f30679-2dcf-a0cb-4268-f1337619a55d": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "pa8 level status",
                  "type": "timeseries",
                  "label": "Pa8 level status",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "insert_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "d5f30679-2dcf-a0cb-4268-f1337619a55d"
      },
      "5d587a0a-18e3-b027-f91d-7f660cae3a4b": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "door duration",
                  "type": "timeseries",
                  "label": "Door duration",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "query_builder",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "5d587a0a-18e3-b027-f91d-7f660cae3a4b"
      },
      "efde899e-5556-8b42-aa2e-d670858fa8e6": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "count time",
                  "type": "timeseries",
                  "label": "Count time",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "watch_later",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "efde899e-5556-8b42-aa2e-d670858fa8e6"
      },
      "371f5550-91cd-0699-cca2-dfdd7772d8a4": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "371f5550-91cd-0699-cca2-dfdd7772d8a4"
      },
      "9423b3f4-552e-8fcd-1b6f-5e781447d783": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "9423b3f4-552e-8fcd-1b6f-5e781447d783"
      },
      "e33bb8b7-221a-81d0-f141-75c8136b53f5": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "e33bb8b7-221a-81d0-f141-75c8136b53f5"
      },
      "9373afc4-24c1-c122-ddc2-91ae66760477": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "9373afc4-24c1-c122-ddc2-91ae66760477"
      },
      "0cc6a831-ce7f-5609-8799-f968116dcca1": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "work mode",
                  "type": "timeseries",
                  "label": "Work mode",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13373946995907948,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372792160,
                "endTimeMs": 1728459192160
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "visibility",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "0cc6a831-ce7f-5609-8799-f968116dcca1"
      },
      "812a8a26-c3b0-dd0d-52a6-41269499121b": {
        "typeFullFqn": "system.noise_level_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "current_chan1",
                  "type": "timeseries",
                  "label": "Current_chan1",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7205994902026094,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728375407229,
                "endTimeMs": 1728461807229
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "settings",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 70,
                  "color": "#FFA600"
                },
                {
                  "from": 70,
                  "to": 90,
                  "color": "#F36900"
                },
                {
                  "from": 90,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 70,
                  "color": "#FFA600"
                },
                {
                  "from": 70,
                  "to": 90,
                  "color": "#F36900"
                },
                {
                  "from": 90,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Noise level card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "812a8a26-c3b0-dd0d-52a6-41269499121b"
      },
      "624be6e0-ffb9-6c26-c8c0-e5471f9a2197": {
        "typeFullFqn": "system.noise_level_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "current_chan2",
                  "type": "timeseries",
                  "label": "Current_chan2",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7205994902026094,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728375407229,
                "endTimeMs": 1728461807229
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "settings",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 70,
                  "color": "#FFA600"
                },
                {
                  "from": 70,
                  "to": 90,
                  "color": "#F36900"
                },
                {
                  "from": 90,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 70,
                  "color": "#FFA600"
                },
                {
                  "from": 70,
                  "to": 90,
                  "color": "#F36900"
                },
                {
                  "from": 90,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Noise level card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "624be6e0-ffb9-6c26-c8c0-e5471f9a2197"
      },
      "5ae91994-886c-567e-591a-d4719608138c": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "5ae91994-886c-567e-591a-d4719608138c"
      },
      "977b327b-cfbd-7f06-358f-dfddd21b8af1": {
        "typeFullFqn": "system.noise_level_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "current_chan3",
                  "type": "timeseries",
                  "label": "Current_chan3",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7205994902026094,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728375407229,
                "endTimeMs": 1728461807229
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "settings",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 70,
                  "color": "#FFA600"
                },
                {
                  "from": 70,
                  "to": 90,
                  "color": "#F36900"
                },
                {
                  "from": 90,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 70,
                  "color": "#FFA600"
                },
                {
                  "from": 70,
                  "to": 90,
                  "color": "#F36900"
                },
                {
                  "from": 90,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Noise level card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "977b327b-cfbd-7f06-358f-dfddd21b8af1"
      },
      "380953db-325b-2693-e6f7-c27ee85314f7": {
        "typeFullFqn": "system.noise_level_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "current_chan4",
                  "type": "timeseries",
                  "label": "Current_chan4",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7205994902026094,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728375407229,
                "endTimeMs": 1728461807229
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "settings",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 70,
                  "color": "#FFA600"
                },
                {
                  "from": 70,
                  "to": 90,
                  "color": "#F36900"
                },
                {
                  "from": 90,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 70,
                  "color": "#FFA600"
                },
                {
                  "from": 70,
                  "to": 90,
                  "color": "#F36900"
                },
                {
                  "from": 90,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Noise level card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "380953db-325b-2693-e6f7-c27ee85314f7"
      },
      "9b713938-fe75-ccab-dd7c-e806ebd91ff8": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "9b713938-fe75-ccab-dd7c-e806ebd91ff8"
      },
      "5165ac37-7359-8cd3-375c-a8785fab3fba": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "5165ac37-7359-8cd3-375c-a8785fab3fba"
      },
      "99cffe39-45de-2c49-8630-723e650ad418": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "99cffe39-45de-2c49-8630-723e650ad418"
      },
      "2fdba255-5685-6695-2fe4-dc836f974292": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "2fdba255-5685-6695-2fe4-dc836f974292"
      },
      "9d3d3e4a-9bd4-9b3e-6dfe-55d885c44a54": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "9d3d3e4a-9bd4-9b3e-6dfe-55d885c44a54"
      },
      "6813ac2c-bb47-04ca-0180-291e4d4b0bb9": {
        "typeFullFqn": "system.cards.timeseries_table",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 6.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": " temperature1",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.9931141981255283,
                  "units": "°C",
                  "decimals": 3
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "interval": 120000,
              "timewindowMs": 43200000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1746623308992,
                "endTimeMs": 1746709708992
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 28999
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "showTimestamp": true,
            "displayPagination": true,
            "defaultPageSize": 10,
            "enableSearch": true,
            "enableSelectColumnDisplay": true
          },
          "title": "Timeseries table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "displayTimewindow": true,
          "configMode": "basic",
          "titleFont": null,
          "titleColor": null,
          "titleIcon": null,
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "6813ac2c-bb47-04ca-0180-291e4d4b0bb9"
      },
      "932d7a16-1ade-8565-4f13-6be40eb5e370": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "interrupt_level",
                  "type": "timeseries",
                  "label": "Interrupt_level",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3067043996037204
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728456401690,
                "endTimeMs": 1728542801690
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "warning",
            "iconColor": {
              "type": "constant",
              "color": "rgba(194, 20, 20, 0.87)",
              "rangeList": {
                "advancedMode": false,
                "range": [
                  {
                    "from": null,
                    "to": 100,
                    "color": "rgba(0, 0, 0, 0.76)"
                  },
                  {
                    "from": 100,
                    "to": 300,
                    "color": "#FFA600"
                  },
                  {
                    "from": 300,
                    "to": 500,
                    "color": "#F36900"
                  },
                  {
                    "from": 500,
                    "to": null,
                    "color": "#D81838"
                  }
                ]
              },
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": {
                "advancedMode": false,
                "range": [
                  {
                    "from": null,
                    "to": 100,
                    "color": "rgba(0, 0, 0, 0.76)"
                  },
                  {
                    "from": 100,
                    "to": 300,
                    "color": "#FFA600"
                  },
                  {
                    "from": 300,
                    "to": 500,
                    "color": "#F36900"
                  },
                  {
                    "from": 500,
                    "to": null,
                    "color": "#D81838"
                  }
                ]
              }
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true,
            "padding": ""
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "932d7a16-1ade-8565-4f13-6be40eb5e370"
      },
      "77f45697-56bc-531c-d27e-e9f897e85c9a": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature1",
                  "type": "timeseries",
                  "label": "Temperature1",
                  "color": "#2196f3",
                  "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.31500755330283026,
                  "units": "°C",
                  "decimals": 3
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "actions": {
            "headerButton": []
          },
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "77f45697-56bc-531c-d27e-e9f897e85c9a"
      },
      "20602508-93af-1b89-8345-867e1065f6ed": {
        "typeFullFqn": "system.input_widgets.update_multiple_attributes",
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "longitude",
                  "type": "attribute",
                  "label": "longitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.9711845861284355
                },
                {
                  "name": "latitude",
                  "type": "attribute",
                  "label": "latitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.3665661891698935
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1746612686874,
                "endTimeMs": 1746699086874
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "groupTitle": "${entityName}",
            "showActionButtons": true,
            "fieldsAlignment": "row",
            "fieldsInRow": 2,
            "columnGap": 10,
            "rowGap": 5
          },
          "title": "Update Multiple Attributes",
          "dropShadow": true,
          "enableFullscreen": false,
          "enableDataExport": false,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "20602508-93af-1b89-8345-867e1065f6ed"
      },
      "f757cd5c-72dc-7d63-9fbd-e5f45cb1c698": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "attribute",
                  "label": "latitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.10523059262707934
                },
                {
                  "name": "longitude",
                  "type": "attribute",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.007913666499596128
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728281579428,
                "endTimeMs": 1728367979428
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "gmApiKey": "AIzaSyDoEx2kaGz3PxwbI9T7ccTSg5xjdw8Nw8Q",
            "gmDefaultMapType": "roadmap",
            "mapProvider": "OpenStreetMap.Mapnik",
            "useCustomProvider": false,
            "customProviderTileUrl": "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
            "mapProviderHere": "HERE.normalDay",
            "credentials": {
              "useV3": true,
              "app_id": "AhM6TzD9ThyK78CT3ptx",
              "app_code": "p6NPiITB3Vv0GMUFnkLOOg",
              "apiKey": "kVXykxAfZ6LS4EbCTO02soFVfjA7HoBzNVVH9u7nzoE"
            },
            "mapImageUrl": "tb-image;/api/images/system/here_map_system_widget_map_image.svg",
            "imageEntityAlias": "",
            "imageUrlAttribute": "",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultZoomLevel": null,
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": false,
            "markerImage": "tb-image;/api/images/system/water_metering_user_dashboard_dashboard_widget_new_openstreetmap_marker_image.svg",
            "markerImageSize": 34,
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "polygonLabelFunction": null,
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonTooltipFunction": null,
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonColorFunction": null,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "polygonStrokeColorFunction": null,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "circleLabelFunction": null,
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleTooltipFunction": null,
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleFillColorFunction": null,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "circleStrokeColorFunction": null,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxZoom": null,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false,
            "clusterMarkerFunction": null
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "f757cd5c-72dc-7d63-9fbd-e5f45cb1c698"
      },
      "3932c4c8-9968-f442-1b14-7aa3946cfbff": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "3932c4c8-9968-f442-1b14-7aa3946cfbff"
      },
      "3727be34-be67-2779-0e6a-509cf773bc00": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "3727be34-be67-2779-0e6a-509cf773bc00"
      },
      "6a0269bd-97af-a915-44df-abfecd645add": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "6a0269bd-97af-a915-44df-abfecd645add"
      },
      "249b6883-341e-cbef-54b5-7eecf921ca6c": {
        "typeFullFqn": "system.cards.timeseries_table",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 6.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": " temperature1",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.9931141981255283,
                  "units": "°C",
                  "decimals": 3
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "interval": 120000,
              "timewindowMs": 43200000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1746623308992,
                "endTimeMs": 1746709708992
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 28999
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "showTimestamp": true,
            "displayPagination": true,
            "defaultPageSize": 10,
            "enableSearch": true,
            "enableSelectColumnDisplay": true
          },
          "title": "Timeseries table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "displayTimewindow": true,
          "configMode": "basic",
          "titleFont": null,
          "titleColor": null,
          "titleIcon": null,
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "249b6883-341e-cbef-54b5-7eecf921ca6c"
      },
      "6a1adde0-58b9-84cd-e56a-c296c95acdeb": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "interrupt_level",
                  "type": "timeseries",
                  "label": "Interrupt_level",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3067043996037204
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728456401690,
                "endTimeMs": 1728542801690
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "warning",
            "iconColor": {
              "type": "constant",
              "color": "rgba(194, 20, 20, 0.87)",
              "rangeList": {
                "advancedMode": false,
                "range": [
                  {
                    "from": null,
                    "to": 100,
                    "color": "rgba(0, 0, 0, 0.76)"
                  },
                  {
                    "from": 100,
                    "to": 300,
                    "color": "#FFA600"
                  },
                  {
                    "from": 300,
                    "to": 500,
                    "color": "#F36900"
                  },
                  {
                    "from": 500,
                    "to": null,
                    "color": "#D81838"
                  }
                ]
              },
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": {
                "advancedMode": false,
                "range": [
                  {
                    "from": null,
                    "to": 100,
                    "color": "rgba(0, 0, 0, 0.76)"
                  },
                  {
                    "from": 100,
                    "to": 300,
                    "color": "#FFA600"
                  },
                  {
                    "from": 300,
                    "to": 500,
                    "color": "#F36900"
                  },
                  {
                    "from": 500,
                    "to": null,
                    "color": "#D81838"
                  }
                ]
              }
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true,
            "padding": ""
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "6a1adde0-58b9-84cd-e56a-c296c95acdeb"
      },
      "0332e84e-eeca-50b5-450b-c31af6c5f958": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature1",
                  "type": "timeseries",
                  "label": "Temperature1",
                  "color": "#2196f3",
                  "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.31500755330283026,
                  "units": "°C",
                  "decimals": 3
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "actions": {
            "headerButton": []
          },
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "0332e84e-eeca-50b5-450b-c31af6c5f958"
      },
      "b1b6133a-ba1f-977e-eca1-ed37599e41c5": {
        "typeFullFqn": "system.input_widgets.update_multiple_attributes",
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "longitude",
                  "type": "attribute",
                  "label": "longitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.9711845861284355
                },
                {
                  "name": "latitude",
                  "type": "attribute",
                  "label": "latitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.3665661891698935
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1746612686874,
                "endTimeMs": 1746699086874
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "groupTitle": "${entityName}",
            "showActionButtons": true,
            "fieldsAlignment": "row",
            "fieldsInRow": 2,
            "columnGap": 10,
            "rowGap": 5
          },
          "title": "Update Multiple Attributes",
          "dropShadow": true,
          "enableFullscreen": false,
          "enableDataExport": false,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "b1b6133a-ba1f-977e-eca1-ed37599e41c5"
      },
      "722c7fe3-19c3-baed-a1c9-09ec0e99ac74": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "attribute",
                  "label": "latitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.10523059262707934
                },
                {
                  "name": "longitude",
                  "type": "attribute",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.007913666499596128
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728281579428,
                "endTimeMs": 1728367979428
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "gmApiKey": "AIzaSyDoEx2kaGz3PxwbI9T7ccTSg5xjdw8Nw8Q",
            "gmDefaultMapType": "roadmap",
            "mapProvider": "OpenStreetMap.Mapnik",
            "useCustomProvider": false,
            "customProviderTileUrl": "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
            "mapProviderHere": "HERE.normalDay",
            "credentials": {
              "useV3": true,
              "app_id": "AhM6TzD9ThyK78CT3ptx",
              "app_code": "p6NPiITB3Vv0GMUFnkLOOg",
              "apiKey": "kVXykxAfZ6LS4EbCTO02soFVfjA7HoBzNVVH9u7nzoE"
            },
            "mapImageUrl": "tb-image;/api/images/system/here_map_system_widget_map_image.svg",
            "imageEntityAlias": "",
            "imageUrlAttribute": "",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultZoomLevel": null,
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": false,
            "markerImage": "tb-image;/api/images/system/water_metering_user_dashboard_dashboard_widget_new_openstreetmap_marker_image.svg",
            "markerImageSize": 34,
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "polygonLabelFunction": null,
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonTooltipFunction": null,
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonColorFunction": null,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "polygonStrokeColorFunction": null,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "circleLabelFunction": null,
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleTooltipFunction": null,
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleFillColorFunction": null,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "circleStrokeColorFunction": null,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxZoom": null,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false,
            "clusterMarkerFunction": null
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "722c7fe3-19c3-baed-a1c9-09ec0e99ac74"
      },
      "fc1172d3-e470-697a-509e-f601e9e151bf": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "fc1172d3-e470-697a-509e-f601e9e151bf"
      },
      "a66fad6f-8d1a-6bf8-8ddc-33bd7718fc3e": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "a66fad6f-8d1a-6bf8-8ddc-33bd7718fc3e"
      },
      "8d345c9e-1865-2f2f-8067-e9657f1326be": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "8d345c9e-1865-2f2f-8067-e9657f1326be"
      },
      "fd5153c4-d75e-6966-02ab-295af79c6b30": {
        "typeFullFqn": "system.cards.timeseries_table",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 6.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": " temperature1",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.9931141981255283,
                  "units": "°C",
                  "decimals": 3
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "interval": 120000,
              "timewindowMs": 43200000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1746623308992,
                "endTimeMs": 1746709708992
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 28999
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "showTimestamp": true,
            "displayPagination": true,
            "defaultPageSize": 10,
            "enableSearch": true,
            "enableSelectColumnDisplay": true
          },
          "title": "Timeseries table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "displayTimewindow": true,
          "configMode": "basic",
          "titleFont": null,
          "titleColor": null,
          "titleIcon": null,
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "fd5153c4-d75e-6966-02ab-295af79c6b30"
      },
      "ca4d9d97-9a12-4a6c-bab8-508f7295d7f4": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "interrupt_level",
                  "type": "timeseries",
                  "label": "Interrupt_level",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3067043996037204
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728456401690,
                "endTimeMs": 1728542801690
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "warning",
            "iconColor": {
              "type": "constant",
              "color": "rgba(194, 20, 20, 0.87)",
              "rangeList": {
                "advancedMode": false,
                "range": [
                  {
                    "from": null,
                    "to": 100,
                    "color": "rgba(0, 0, 0, 0.76)"
                  },
                  {
                    "from": 100,
                    "to": 300,
                    "color": "#FFA600"
                  },
                  {
                    "from": 300,
                    "to": 500,
                    "color": "#F36900"
                  },
                  {
                    "from": 500,
                    "to": null,
                    "color": "#D81838"
                  }
                ]
              },
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": {
                "advancedMode": false,
                "range": [
                  {
                    "from": null,
                    "to": 100,
                    "color": "rgba(0, 0, 0, 0.76)"
                  },
                  {
                    "from": 100,
                    "to": 300,
                    "color": "#FFA600"
                  },
                  {
                    "from": 300,
                    "to": 500,
                    "color": "#F36900"
                  },
                  {
                    "from": 500,
                    "to": null,
                    "color": "#D81838"
                  }
                ]
              }
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true,
            "padding": ""
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "ca4d9d97-9a12-4a6c-bab8-508f7295d7f4"
      },
      "9cd27ccd-75bd-0584-25b1-c649d36b6527": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature1",
                  "type": "timeseries",
                  "label": "Temperature1",
                  "color": "#2196f3",
                  "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.31500755330283026,
                  "units": "°C",
                  "decimals": 3
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "actions": {
            "headerButton": []
          },
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "9cd27ccd-75bd-0584-25b1-c649d36b6527"
      },
      "5d84b18d-ec4e-500a-316a-c4c051723ff7": {
        "typeFullFqn": "system.input_widgets.update_multiple_attributes",
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "longitude",
                  "type": "attribute",
                  "label": "longitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.9711845861284355
                },
                {
                  "name": "latitude",
                  "type": "attribute",
                  "label": "latitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.3665661891698935
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1746612686874,
                "endTimeMs": 1746699086874
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "groupTitle": "${entityName}",
            "showActionButtons": true,
            "fieldsAlignment": "row",
            "fieldsInRow": 2,
            "columnGap": 10,
            "rowGap": 5
          },
          "title": "Update Multiple Attributes",
          "dropShadow": true,
          "enableFullscreen": false,
          "enableDataExport": false,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "5d84b18d-ec4e-500a-316a-c4c051723ff7"
      },
      "49b0a7cd-8d6d-d9a5-9d5f-80c7b7e84c65": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "attribute",
                  "label": "latitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.10523059262707934
                },
                {
                  "name": "longitude",
                  "type": "attribute",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.007913666499596128
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728281579428,
                "endTimeMs": 1728367979428
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "gmApiKey": "AIzaSyDoEx2kaGz3PxwbI9T7ccTSg5xjdw8Nw8Q",
            "gmDefaultMapType": "roadmap",
            "mapProvider": "OpenStreetMap.Mapnik",
            "useCustomProvider": false,
            "customProviderTileUrl": "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
            "mapProviderHere": "HERE.normalDay",
            "credentials": {
              "useV3": true,
              "app_id": "AhM6TzD9ThyK78CT3ptx",
              "app_code": "p6NPiITB3Vv0GMUFnkLOOg",
              "apiKey": "kVXykxAfZ6LS4EbCTO02soFVfjA7HoBzNVVH9u7nzoE"
            },
            "mapImageUrl": "tb-image;/api/images/system/here_map_system_widget_map_image.svg",
            "imageEntityAlias": "",
            "imageUrlAttribute": "",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultZoomLevel": null,
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": false,
            "markerImage": "tb-image;/api/images/system/water_metering_user_dashboard_dashboard_widget_new_openstreetmap_marker_image.svg",
            "markerImageSize": 34,
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "polygonLabelFunction": null,
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonTooltipFunction": null,
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonColorFunction": null,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "polygonStrokeColorFunction": null,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "circleLabelFunction": null,
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleTooltipFunction": null,
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleFillColorFunction": null,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "circleStrokeColorFunction": null,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxZoom": null,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false,
            "clusterMarkerFunction": null
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "49b0a7cd-8d6d-d9a5-9d5f-80c7b7e84c65"
      },
      "2f994067-1c0b-aa65-0f36-733812f6ad6d": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "2f994067-1c0b-aa65-0f36-733812f6ad6d"
      },
      "12ee9e51-8422-65a7-d62c-650d588b10a5": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "12ee9e51-8422-65a7-d62c-650d588b10a5"
      },
      "9b156b4f-9348-f5d0-16c7-e5c90682212d": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "9b156b4f-9348-f5d0-16c7-e5c90682212d"
      },
      "f7ca9c41-394b-8a48-b947-c40d481e4448": {
        "typeFullFqn": "system.cards.timeseries_table",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 6.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": " temperature1",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.9931141981255283,
                  "units": "°C",
                  "decimals": 3
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "interval": 120000,
              "timewindowMs": 43200000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1746623308992,
                "endTimeMs": 1746709708992
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 28999
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "showTimestamp": true,
            "displayPagination": true,
            "defaultPageSize": 10,
            "enableSearch": true,
            "enableSelectColumnDisplay": true
          },
          "title": "Timeseries table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "displayTimewindow": true,
          "configMode": "basic",
          "titleFont": null,
          "titleColor": null,
          "titleIcon": null,
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "f7ca9c41-394b-8a48-b947-c40d481e4448"
      },
      "d0b8e7b8-c534-9bff-bd5c-fe27bd96bb27": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "interrupt_level",
                  "type": "timeseries",
                  "label": "Interrupt_level",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3067043996037204
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728456401690,
                "endTimeMs": 1728542801690
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "warning",
            "iconColor": {
              "type": "constant",
              "color": "rgba(194, 20, 20, 0.87)",
              "rangeList": {
                "advancedMode": false,
                "range": [
                  {
                    "from": null,
                    "to": 100,
                    "color": "rgba(0, 0, 0, 0.76)"
                  },
                  {
                    "from": 100,
                    "to": 300,
                    "color": "#FFA600"
                  },
                  {
                    "from": 300,
                    "to": 500,
                    "color": "#F36900"
                  },
                  {
                    "from": 500,
                    "to": null,
                    "color": "#D81838"
                  }
                ]
              },
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": {
                "advancedMode": false,
                "range": [
                  {
                    "from": null,
                    "to": 100,
                    "color": "rgba(0, 0, 0, 0.76)"
                  },
                  {
                    "from": 100,
                    "to": 300,
                    "color": "#FFA600"
                  },
                  {
                    "from": 300,
                    "to": 500,
                    "color": "#F36900"
                  },
                  {
                    "from": 500,
                    "to": null,
                    "color": "#D81838"
                  }
                ]
              }
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true,
            "padding": ""
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "d0b8e7b8-c534-9bff-bd5c-fe27bd96bb27"
      },
      "b1c70257-4229-41a4-5ba6-c3677ccd6c95": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature1",
                  "type": "timeseries",
                  "label": "Temperature1",
                  "color": "#2196f3",
                  "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.31500755330283026,
                  "units": "°C",
                  "decimals": 3
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "actions": {
            "headerButton": []
          },
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "b1c70257-4229-41a4-5ba6-c3677ccd6c95"
      },
      "ca953f90-441c-d033-81d2-bf0c61950d7e": {
        "typeFullFqn": "system.input_widgets.update_multiple_attributes",
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "longitude",
                  "type": "attribute",
                  "label": "longitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.9711845861284355
                },
                {
                  "name": "latitude",
                  "type": "attribute",
                  "label": "latitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.3665661891698935
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1746612686874,
                "endTimeMs": 1746699086874
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "groupTitle": "${entityName}",
            "showActionButtons": true,
            "fieldsAlignment": "row",
            "fieldsInRow": 2,
            "columnGap": 10,
            "rowGap": 5
          },
          "title": "Update Multiple Attributes",
          "dropShadow": true,
          "enableFullscreen": false,
          "enableDataExport": false,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "ca953f90-441c-d033-81d2-bf0c61950d7e"
      },
      "14360ecb-790e-e24f-0380-ea37547eb4fa": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "attribute",
                  "label": "latitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.10523059262707934
                },
                {
                  "name": "longitude",
                  "type": "attribute",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.007913666499596128
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728281579428,
                "endTimeMs": 1728367979428
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "gmApiKey": "AIzaSyDoEx2kaGz3PxwbI9T7ccTSg5xjdw8Nw8Q",
            "gmDefaultMapType": "roadmap",
            "mapProvider": "OpenStreetMap.Mapnik",
            "useCustomProvider": false,
            "customProviderTileUrl": "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
            "mapProviderHere": "HERE.normalDay",
            "credentials": {
              "useV3": true,
              "app_id": "AhM6TzD9ThyK78CT3ptx",
              "app_code": "p6NPiITB3Vv0GMUFnkLOOg",
              "apiKey": "kVXykxAfZ6LS4EbCTO02soFVfjA7HoBzNVVH9u7nzoE"
            },
            "mapImageUrl": "tb-image;/api/images/system/here_map_system_widget_map_image.svg",
            "imageEntityAlias": "",
            "imageUrlAttribute": "",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultZoomLevel": null,
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": false,
            "markerImage": "tb-image;/api/images/system/water_metering_user_dashboard_dashboard_widget_new_openstreetmap_marker_image.svg",
            "markerImageSize": 34,
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "polygonLabelFunction": null,
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonTooltipFunction": null,
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonColorFunction": null,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "polygonStrokeColorFunction": null,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "circleLabelFunction": null,
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleTooltipFunction": null,
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleFillColorFunction": null,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "circleStrokeColorFunction": null,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxZoom": null,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false,
            "clusterMarkerFunction": null
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "14360ecb-790e-e24f-0380-ea37547eb4fa"
      },
      "fe61f5a5-ed91-d613-76ab-e437dc9ca361": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "fe61f5a5-ed91-d613-76ab-e437dc9ca361"
      },
      "de0fc8d7-0cb3-e8e8-ba1b-acdce22b7052": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "ds18b20_temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.15877881667089944,
                  "units": "°C",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "de0fc8d7-0cb3-e8e8-ba1b-acdce22b7052"
      },
      "ca3ec709-8177-57ea-3898-3b487e5afda8": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.00167156006869007,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349735200,
                "endTimeMs": 1728436135200
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "ca3ec709-8177-57ea-3898-3b487e5afda8"
      },
      "ac32ccc3-a53e-78dc-a5c7-c32b5389e5f4": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7251885505707516,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349682782,
                "endTimeMs": 1728436082782
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "ac32ccc3-a53e-78dc-a5c7-c32b5389e5f4"
      },
      "b3906438-5de0-4d7b-3976-a61f53618515": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "distance1",
                  "type": "timeseries",
                  "label": "Distance1",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "b3906438-5de0-4d7b-3976-a61f53618515"
      },
      "542ea178-c6a8-aa84-61c4-60a3c010cb18": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "distance2",
                  "type": "timeseries",
                  "label": "Distance2",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "542ea178-c6a8-aa84-61c4-60a3c010cb18"
      },
      "ec6f1aeb-e501-43bc-1aa9-0c14a383c1ed": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "distance3",
                  "type": "timeseries",
                  "label": "Distance3",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "ec6f1aeb-e501-43bc-1aa9-0c14a383c1ed"
      },
      "3af1dc3d-49ad-43c3-c677-c238a363b245": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "distance4",
                  "type": "timeseries",
                  "label": "Distance4",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "3af1dc3d-49ad-43c3-c677-c238a363b245"
      },
      "c8a1dfce-e9c9-5998-849a-75ef0ae7697d": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.48163653398474726
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.7652757085905564
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349648286,
                "endTimeMs": 1728436048286
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "c8a1dfce-e9c9-5998-849a-75ef0ae7697d"
      },
      "b8de076b-43f5-3b48-0ad4-c570556e40cd": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "b8de076b-43f5-3b48-0ad4-c570556e40cd"
      },
      "92a87358-1623-7e21-ad36-2fdaedbc29ef": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "distance",
                  "type": "timeseries",
                  "label": "Distance",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "92a87358-1623-7e21-ad36-2fdaedbc29ef"
      },
      "c8053e79-520d-fcc7-7897-377c5d3c6df0": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7251885505707516,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349682782,
                "endTimeMs": 1728436082782
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "c8053e79-520d-fcc7-7897-377c5d3c6df0"
      },
      "fdfbd4a3-94e9-5e0a-7a2b-0f09cc635c8b": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.00167156006869007,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349735200,
                "endTimeMs": 1728436135200
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "fdfbd4a3-94e9-5e0a-7a2b-0f09cc635c8b"
      },
      "9b92a7cb-2c9f-d9cb-d6de-1645d4603987": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13204747240985504
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.15509700908793822
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728350122470,
                "endTimeMs": 1728436522470
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "9b92a7cb-2c9f-d9cb-d6de-1645d4603987"
      },
      "d80403d9-9db8-f6ad-8311-fe90b18bfe39": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "d80403d9-9db8-f6ad-8311-fe90b18bfe39"
      },
      "10142eeb-c6f4-1428-7556-3c3921db5b44": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "distance",
                  "type": "timeseries",
                  "label": "Distance",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "10142eeb-c6f4-1428-7556-3c3921db5b44"
      },
      "34890428-f492-c26d-196f-9c82baad858e": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7251885505707516,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349682782,
                "endTimeMs": 1728436082782
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "34890428-f492-c26d-196f-9c82baad858e"
      },
      "048b4f70-4165-7f89-a6b8-5bd54cf85308": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.00167156006869007,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349735200,
                "endTimeMs": 1728436135200
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "048b4f70-4165-7f89-a6b8-5bd54cf85308"
      },
      "82711666-0fc0-e45e-71dd-c953d6afabf0": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13204747240985504
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.15509700908793822
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728350122470,
                "endTimeMs": 1728436522470
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "82711666-0fc0-e45e-71dd-c953d6afabf0"
      },
      "46456f4b-6857-fe85-f6e5-ef06d6678dcd": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "46456f4b-6857-fe85-f6e5-ef06d6678dcd"
      },
      "3696b0c4-3a2c-5927-3989-487dd9087166": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "distance",
                  "type": "timeseries",
                  "label": "Distance",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "3696b0c4-3a2c-5927-3989-487dd9087166"
      },
      "79edb7b9-16e5-50c3-f89f-e38e598c0b2a": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7251885505707516,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349682782,
                "endTimeMs": 1728436082782
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "79edb7b9-16e5-50c3-f89f-e38e598c0b2a"
      },
      "34a74f95-bcc6-2465-6624-6f8994c54d43": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.00167156006869007,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349735200,
                "endTimeMs": 1728436135200
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "34a74f95-bcc6-2465-6624-6f8994c54d43"
      },
      "3df14505-9c5a-e593-66a0-7ddbf2468a22": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13204747240985504
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.15509700908793822
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728350122470,
                "endTimeMs": 1728436522470
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "3df14505-9c5a-e593-66a0-7ddbf2468a22"
      },
      "7f56ec78-4f4a-1b24-f5fe-b4a299017a3f": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "7f56ec78-4f4a-1b24-f5fe-b4a299017a3f"
      },
      "7566238a-934c-e75c-901a-08c1277b7999": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "level status",
                  "type": "timeseries",
                  "label": "Level status",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.010814182933937433,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728351271426,
                "endTimeMs": 1728437671426
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "brightness_auto",
            "iconColor": {
              "type": "constant",
              "color": "rgba(35, 34, 173, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": null,
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "7566238a-934c-e75c-901a-08c1277b7999"
      },
      "95612fac-dfd4-682c-3a45-97bc086a6002": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "alarm status",
                  "type": "timeseries",
                  "label": "Alarm status",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.010814182933937433,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728351271426,
                "endTimeMs": 1728437671426
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "layout": "horizontal",
            "autoScale": true,
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500",
              "lineHeight": "1.5"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "info",
            "iconColor": {
              "type": "constant",
              "color": "rgba(208, 15, 15, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D41031"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 36,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500",
              "lineHeight": "100%"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false,
              "auto": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500",
              "lineHeight": "1.33"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            }
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": null,
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "advanced",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "95612fac-dfd4-682c-3a45-97bc086a6002"
      },
      "c2cf1216-5f31-7c87-aa99-221c0d3f542f": {
        "typeFullFqn": "system.uv_index_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "door open num",
                  "type": "timeseries",
                  "label": "Door open num",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8353636283677706,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728351882066,
                "endTimeMs": 1728438282066
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "simplified",
            "showLabel": true,
            "labelFont": {
              "size": 16,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "light_mode",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 2,
                  "color": "#80C32C"
                },
                {
                  "from": 2,
                  "to": 5,
                  "color": "#FFA600"
                },
                {
                  "from": 5,
                  "to": 7,
                  "color": "#F36900"
                },
                {
                  "from": 7,
                  "to": 10,
                  "color": "#F04022"
                },
                {
                  "from": 10,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 52,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 2,
                  "color": "#80C32C"
                },
                {
                  "from": 2,
                  "to": 5,
                  "color": "#FFA600"
                },
                {
                  "from": 5,
                  "to": 7,
                  "color": "#F36900"
                },
                {
                  "from": 7,
                  "to": 10,
                  "color": "#F04022"
                },
                {
                  "from": 10,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Door open num",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": null,
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "advanced",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "c2cf1216-5f31-7c87-aa99-221c0d3f542f"
      },
      "eaac8f58-5fda-9a87-3ed1-29dc27def45f": {
        "typeFullFqn": "system.uv_index_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "last open time",
                  "type": "timeseries",
                  "label": "Last open time",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8353636283677706,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728351882066,
                "endTimeMs": 1728438282066
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "simplified",
            "showLabel": true,
            "labelFont": {
              "size": 16,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "light_mode",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 2,
                  "color": "#80C32C"
                },
                {
                  "from": 2,
                  "to": 5,
                  "color": "#FFA600"
                },
                {
                  "from": 5,
                  "to": 7,
                  "color": "#F36900"
                },
                {
                  "from": 7,
                  "to": 10,
                  "color": "#F04022"
                },
                {
                  "from": 10,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 52,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 2,
                  "color": "#80C32C"
                },
                {
                  "from": 2,
                  "to": 5,
                  "color": "#FFA600"
                },
                {
                  "from": 5,
                  "to": 7,
                  "color": "#F36900"
                },
                {
                  "from": 7,
                  "to": 10,
                  "color": "#F04022"
                },
                {
                  "from": 10,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "UV Index card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": null,
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "eaac8f58-5fda-9a87-3ed1-29dc27def45f"
      },
      "fb294120-1538-3dec-188b-ad667618cdc4": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "level status2",
                  "type": "timeseries",
                  "label": "Level status2",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.010814182933937433,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728351271426,
                "endTimeMs": 1728437671426
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "brightness_auto",
            "iconColor": {
              "type": "constant",
              "color": "rgba(35, 34, 173, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": null,
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "fb294120-1538-3dec-188b-ad667618cdc4"
      },
      "a0926057-e5ce-f043-f79c-419f29500504": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "alarm status2",
                  "type": "timeseries",
                  "label": "Alarm status2",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.010814182933937433,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728351271426,
                "endTimeMs": 1728437671426
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "layout": "horizontal",
            "autoScale": true,
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500",
              "lineHeight": "1.5"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "info",
            "iconColor": {
              "type": "constant",
              "color": "rgba(208, 15, 15, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D41031"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 36,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500",
              "lineHeight": "100%"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false,
              "auto": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500",
              "lineHeight": "1.33"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            }
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": null,
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "a0926057-e5ce-f043-f79c-419f29500504"
      },
      "586f8715-7190-d3dd-e8a3-3d7ea1914463": {
        "typeFullFqn": "system.uv_index_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "door open num2",
                  "type": "timeseries",
                  "label": "Door open num2",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8353636283677706,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728351882066,
                "endTimeMs": 1728438282066
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "simplified",
            "showLabel": true,
            "labelFont": {
              "size": 16,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "light_mode",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 2,
                  "color": "#80C32C"
                },
                {
                  "from": 2,
                  "to": 5,
                  "color": "#FFA600"
                },
                {
                  "from": 5,
                  "to": 7,
                  "color": "#F36900"
                },
                {
                  "from": 7,
                  "to": 10,
                  "color": "#F04022"
                },
                {
                  "from": 10,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 52,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 2,
                  "color": "#80C32C"
                },
                {
                  "from": 2,
                  "to": 5,
                  "color": "#FFA600"
                },
                {
                  "from": 5,
                  "to": 7,
                  "color": "#F36900"
                },
                {
                  "from": 7,
                  "to": 10,
                  "color": "#F04022"
                },
                {
                  "from": 10,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "UV Index card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": null,
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "586f8715-7190-d3dd-e8a3-3d7ea1914463"
      },
      "3e78d438-2e3f-1650-0bf3-285152340b34": {
        "typeFullFqn": "system.uv_index_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "last open time2",
                  "type": "timeseries",
                  "label": "Last open time2",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8353636283677706,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728351882066,
                "endTimeMs": 1728438282066
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "simplified",
            "showLabel": true,
            "labelFont": {
              "size": 16,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "light_mode",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 2,
                  "color": "#80C32C"
                },
                {
                  "from": 2,
                  "to": 5,
                  "color": "#FFA600"
                },
                {
                  "from": 5,
                  "to": 7,
                  "color": "#F36900"
                },
                {
                  "from": 7,
                  "to": 10,
                  "color": "#F04022"
                },
                {
                  "from": 10,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 52,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 2,
                  "color": "#80C32C"
                },
                {
                  "from": 2,
                  "to": 5,
                  "color": "#FFA600"
                },
                {
                  "from": 5,
                  "to": 7,
                  "color": "#F36900"
                },
                {
                  "from": 7,
                  "to": 10,
                  "color": "#F04022"
                },
                {
                  "from": 10,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "UV Index card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": null,
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "3e78d438-2e3f-1650-0bf3-285152340b34"
      },
      "867d96e4-d9bd-6a2f-ae99-01e4cd42ce7b": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7251885505707516,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349682782,
                "endTimeMs": 1728436082782
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "867d96e4-d9bd-6a2f-ae99-01e4cd42ce7b"
      },
      "619c0a1f-c6b0-a8c1-60b3-844654461ace": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.00167156006869007,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349735200,
                "endTimeMs": 1728436135200
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "619c0a1f-c6b0-a8c1-60b3-844654461ace"
      },
      "1facca78-5967-fb93-4655-a2b335cda29c": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.13204747240985504
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.15509700908793822
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728350122470,
                "endTimeMs": 1728436522470
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "1facca78-5967-fb93-4655-a2b335cda29c"
      },
      "6ea62f41-98a6-7b41-3ff2-f81398e02ba2": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "6ea62f41-98a6-7b41-3ff2-f81398e02ba2"
      },
      "5f566f3e-7ec7-d300-7a38-1873a373ffef": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "Weight Measuremen",
                  "type": "timeseries",
                  "label": "Weight Measuremen",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.34900568051656267,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728546977498,
                "endTimeMs": 1728633377498
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "shield",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "5f566f3e-7ec7-d300-7a38-1873a373ffef"
      },
      "0f05af93-002a-76e8-97a8-60be791e0512": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7251885505707516,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349682782,
                "endTimeMs": 1728436082782
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "0f05af93-002a-76e8-97a8-60be791e0512"
      },
      "1c4e947d-605c-291e-177e-c5988669c35b": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.00167156006869007,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349735200,
                "endTimeMs": 1728436135200
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "1c4e947d-605c-291e-177e-c5988669c35b"
      },
      "84c440f7-9b90-1588-1a99-aaffc10e1b48": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7700114154518893
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.6816469868207562
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728281579428,
                "endTimeMs": 1728367979428
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "gmApiKey": "AIzaSyDoEx2kaGz3PxwbI9T7ccTSg5xjdw8Nw8Q",
            "gmDefaultMapType": "roadmap",
            "mapProvider": "OpenStreetMap.Mapnik",
            "useCustomProvider": false,
            "customProviderTileUrl": "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
            "mapProviderHere": "HERE.normalDay",
            "credentials": {
              "useV3": true,
              "app_id": "AhM6TzD9ThyK78CT3ptx",
              "app_code": "p6NPiITB3Vv0GMUFnkLOOg",
              "apiKey": "kVXykxAfZ6LS4EbCTO02soFVfjA7HoBzNVVH9u7nzoE"
            },
            "mapImageUrl": "tb-image;/api/images/system/here_map_system_widget_map_image.svg",
            "imageEntityAlias": "",
            "imageUrlAttribute": "",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultZoomLevel": null,
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": false,
            "markerImage": "tb-image;/api/images/system/water_metering_user_dashboard_dashboard_widget_new_openstreetmap_marker_image.svg",
            "markerImageSize": 34,
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "polygonLabelFunction": null,
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonTooltipFunction": null,
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonColorFunction": null,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "polygonStrokeColorFunction": null,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "circleLabelFunction": null,
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleTooltipFunction": null,
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleFillColorFunction": null,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "circleStrokeColorFunction": null,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxZoom": null,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false,
            "clusterMarkerFunction": null
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "84c440f7-9b90-1588-1a99-aaffc10e1b48"
      },
      "ab7adf81-44b1-aa38-ce3d-faf8a20d5346": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "ab7adf81-44b1-aa38-ce3d-faf8a20d5346"
      },
      "3f4203ae-d2ec-66bd-c44f-80a35ccad8ce": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "distance",
                  "type": "timeseries",
                  "label": "Distance",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "3f4203ae-d2ec-66bd-c44f-80a35ccad8ce"
      },
      "279c6181-7575-183f-5bdc-2203bf114119": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "distance_signal_strength",
                  "type": "timeseries",
                  "label": "Distance_signal_strength",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.00167156006869007,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349735200,
                "endTimeMs": 1728436135200
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "279c6181-7575-183f-5bdc-2203bf114119"
      },
      "d59e8dcc-cfd2-924f-ce0b-7f5d64e3a5ea": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7700114154518893
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.6816469868207562
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728281579428,
                "endTimeMs": 1728367979428
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "gmApiKey": "AIzaSyDoEx2kaGz3PxwbI9T7ccTSg5xjdw8Nw8Q",
            "gmDefaultMapType": "roadmap",
            "mapProvider": "OpenStreetMap.Mapnik",
            "useCustomProvider": false,
            "customProviderTileUrl": "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
            "mapProviderHere": "HERE.normalDay",
            "credentials": {
              "useV3": true,
              "app_id": "AhM6TzD9ThyK78CT3ptx",
              "app_code": "p6NPiITB3Vv0GMUFnkLOOg",
              "apiKey": "kVXykxAfZ6LS4EbCTO02soFVfjA7HoBzNVVH9u7nzoE"
            },
            "mapImageUrl": "tb-image;/api/images/system/here_map_system_widget_map_image.svg",
            "imageEntityAlias": "",
            "imageUrlAttribute": "",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultZoomLevel": null,
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": false,
            "markerImage": "tb-image;/api/images/system/water_metering_user_dashboard_dashboard_widget_new_openstreetmap_marker_image.svg",
            "markerImageSize": 34,
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "polygonLabelFunction": null,
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonTooltipFunction": null,
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonColorFunction": null,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "polygonStrokeColorFunction": null,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "circleLabelFunction": null,
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleTooltipFunction": null,
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleFillColorFunction": null,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "circleStrokeColorFunction": null,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxZoom": null,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false,
            "clusterMarkerFunction": null
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "d59e8dcc-cfd2-924f-ce0b-7f5d64e3a5ea"
      },
      "4d80a825-bab9-6713-cbe5-aba336231fd5": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "ds18b20_temperature",
                  "type": "timeseries",
                  "label": "ds18b20_temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.15877881667089944,
                  "units": "°C",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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"
          },
          "title": "Ds18b20_temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "4d80a825-bab9-6713-cbe5-aba336231fd5"
      },
      "6b54686e-94fd-946b-d57d-1302cdff5d2a": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.15877881667089944,
                  "units": "°C",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": {
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": true
            },
            "thresholds": [],
            "dataZoom": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "6b54686e-94fd-946b-d57d-1302cdff5d2a"
      },
      "14948f24-f254-8678-fe2f-7c2702e7e178": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "14948f24-f254-8678-fe2f-7c2702e7e178"
      },
      "5883cc24-20da-72de-f8b2-f43298013157": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6716021323544981,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728295646240,
                "endTimeMs": 1728382046240
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "5883cc24-20da-72de-f8b2-f43298013157"
      },
      "b8b70071-f0c7-277d-3ef4-6e61bd6ae94c": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "b8b70071-f0c7-277d-3ef4-6e61bd6ae94c"
      },
      "7ece24b2-4f8a-1d11-9487-bb0d69897cfb": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7700114154518893
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.6816469868207562
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728281579428,
                "endTimeMs": 1728367979428
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "gmApiKey": "AIzaSyDoEx2kaGz3PxwbI9T7ccTSg5xjdw8Nw8Q",
            "gmDefaultMapType": "roadmap",
            "mapProvider": "OpenStreetMap.Mapnik",
            "useCustomProvider": false,
            "customProviderTileUrl": "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
            "mapProviderHere": "HERE.normalDay",
            "credentials": {
              "useV3": true,
              "app_id": "AhM6TzD9ThyK78CT3ptx",
              "app_code": "p6NPiITB3Vv0GMUFnkLOOg",
              "apiKey": "kVXykxAfZ6LS4EbCTO02soFVfjA7HoBzNVVH9u7nzoE"
            },
            "mapImageUrl": "tb-image;/api/images/system/here_map_system_widget_map_image.svg",
            "imageEntityAlias": "",
            "imageUrlAttribute": "",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultZoomLevel": null,
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": false,
            "markerImage": "tb-image;/api/images/system/water_metering_user_dashboard_dashboard_widget_new_openstreetmap_marker_image.svg",
            "markerImageSize": 34,
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "polygonLabelFunction": null,
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonTooltipFunction": null,
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonColorFunction": null,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "polygonStrokeColorFunction": null,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "circleLabelFunction": null,
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleTooltipFunction": null,
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleFillColorFunction": null,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "circleStrokeColorFunction": null,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxZoom": null,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false,
            "clusterMarkerFunction": null
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "7ece24b2-4f8a-1d11-9487-bb0d69897cfb"
      },
      "8545aa52-3503-3004-fc30-5c4d16ededfa": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "distance",
                  "type": "timeseries",
                  "label": "Distance",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "8545aa52-3503-3004-fc30-5c4d16ededfa"
      },
      "45ee1fab-ea3a-9a0d-0f2e-8ed306f6b079": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "distance_signal_strength",
                  "type": "timeseries",
                  "label": "Distance_signal_strength",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.00167156006869007,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349735200,
                "endTimeMs": 1728436135200
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "45ee1fab-ea3a-9a0d-0f2e-8ed306f6b079"
      },
      "5994fbd5-a7b7-bf3c-f44b-c33ef9e631fc": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "5994fbd5-a7b7-bf3c-f44b-c33ef9e631fc"
      },
      "d7a479f4-dd38-7ca1-f730-315c47982ab9": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6716021323544981,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728295646240,
                "endTimeMs": 1728382046240
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "d7a479f4-dd38-7ca1-f730-315c47982ab9"
      },
      "f3d4fab5-3885-571c-a6e6-2c71a1c3612a": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "ds18b20_temperature",
                  "type": "timeseries",
                  "label": "ds18b20_temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.15877881667089944,
                  "units": "°C",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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"
          },
          "title": "Ds18b20_temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "f3d4fab5-3885-571c-a6e6-2c71a1c3612a"
      },
      "5b06a084-ba7b-e2b8-81ba-8c267fe65800": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.15877881667089944,
                  "units": "°C",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": {
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": true
            },
            "thresholds": [],
            "dataZoom": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "5b06a084-ba7b-e2b8-81ba-8c267fe65800"
      },
      "eff71502-5acc-f604-3346-80d669678eb5": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "eff71502-5acc-f604-3346-80d669678eb5"
      },
      "35de5042-0c3d-edc8-3f1c-1c345c798ee9": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.8039028735565856,
                  "units": "°C",
                  "decimals": 3
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "35de5042-0c3d-edc8-3f1c-1c345c798ee9"
      },
      "2e1255b0-3a06-fa8a-031e-9465cf7ddeaf": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "humidity",
                  "type": "timeseries",
                  "label": "humidity",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.6087754931868925,
                  "units": "%",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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"
          },
          "title": "Humidity",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "2e1255b0-3a06-fa8a-031e-9465cf7ddeaf"
      },
      "05df10f1-9aee-0217-3d17-4a11498eac26": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "05df10f1-9aee-0217-3d17-4a11498eac26"
      },
      "1ab7082e-ccaa-fba6-570a-84d24cf164de": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "1ab7082e-ccaa-fba6-570a-84d24cf164de"
      },
      "d24fb243-6a36-e08c-59b6-3f08e67b61f2": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "d24fb243-6a36-e08c-59b6-3f08e67b61f2"
      },
      "ebfa508c-0487-123d-6b86-ecb2097d894b": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "ebfa508c-0487-123d-6b86-ecb2097d894b"
      },
      "588ab57a-6e49-a106-207f-2391fa3a6219": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "588ab57a-6e49-a106-207f-2391fa3a6219"
      },
      "4bd682be-34d2-f321-30db-134f5ca1f4fb": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "4bd682be-34d2-f321-30db-134f5ca1f4fb"
      },
      "cba59f1a-305e-5ad6-4db6-43b3cc4c1205": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "cba59f1a-305e-5ad6-4db6-43b3cc4c1205"
      },
      "e677d189-bb55-be48-fef5-976e5f4d8f8e": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "e677d189-bb55-be48-fef5-976e5f4d8f8e"
      },
      "cfad16d1-c2aa-0b4b-25ca-d2d835aece09": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.15877881667089944,
                  "units": "°C",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": {
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": true
            },
            "thresholds": [],
            "dataZoom": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "cfad16d1-c2aa-0b4b-25ca-d2d835aece09"
      },
      "6f4bc0c0-10de-56ea-e49d-8d1d52e4e360": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "humidity",
                  "type": "timeseries",
                  "label": "humidity",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.909322020083501,
                  "units": "%",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": {
            "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": true,
            "stack": false,
            "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,
            "legendLabelFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "legendLabelColor": "rgba(0, 0, 0, 0.76)",
            "legendConfig": {
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": true
            },
            "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,
            "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": "Humidity",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": 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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "6f4bc0c0-10de-56ea-e49d-8d1d52e4e360"
      },
      "0adacc79-814b-4880-a9eb-eb9aedf9df8d": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "0adacc79-814b-4880-a9eb-eb9aedf9df8d"
      },
      "cae836a4-8ac9-7f59-2c6a-13d75754425a": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "cae836a4-8ac9-7f59-2c6a-13d75754425a"
      },
      "9b126759-eb9a-8db7-e5ef-6a868c15f7fb": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "conduct soil",
                  "type": "timeseries",
                  "label": "Conduct soil",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.457358017070415,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728358478698,
                "endTimeMs": 1728444878698
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "grass",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "9b126759-eb9a-8db7-e5ef-6a868c15f7fb"
      },
      "4484ee16-aac0-7e5b-20fd-cbd4f4107775": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "soil dielectric constant",
                  "type": "timeseries",
                  "label": "Soil dielectric constant",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.457358017070415,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728358478698,
                "endTimeMs": 1728444878698
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "bolt",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "F/m",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "4484ee16-aac0-7e5b-20fd-cbd4f4107775"
      },
      "d53ec5fe-271f-1e0b-adb3-cfa11ba7ecf1": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7771803894132627
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.4408153792361391
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728282094945,
                "endTimeMs": 1728368494945
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true,
          "showTitleIcon": false,
          "titleTooltip": "",
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "d53ec5fe-271f-1e0b-adb3-cfa11ba7ecf1"
      },
      "93cf9ebf-96ad-8a47-c1b4-6c0fabf9c9c4": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "93cf9ebf-96ad-8a47-c1b4-6c0fabf9c9c4"
      },
      "dbfdb0bb-c850-ec33-6ecc-f219ba91bc3c": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.15877881667089944,
                  "units": "°C",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": {
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": true
            },
            "thresholds": [],
            "dataZoom": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "dbfdb0bb-c850-ec33-6ecc-f219ba91bc3c"
      },
      "30a91c42-096e-7767-6ee6-a9efa789aec2": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "humidity",
                  "type": "timeseries",
                  "label": "humidity",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.909322020083501,
                  "units": "%",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": {
            "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": true,
            "stack": false,
            "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,
            "legendLabelFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "legendLabelColor": "rgba(0, 0, 0, 0.76)",
            "legendConfig": {
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": true
            },
            "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,
            "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": "Humidity",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": 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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "30a91c42-096e-7767-6ee6-a9efa789aec2"
      },
      "9b64dc83-4a4f-07af-8f48-99be77cbe616": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "9b64dc83-4a4f-07af-8f48-99be77cbe616"
      },
      "34ebbde5-c3ef-6cb5-0800-2b8d231be123": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "34ebbde5-c3ef-6cb5-0800-2b8d231be123"
      },
      "895cf7ad-1289-ce24-f444-af6422951958": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "conduct soil",
                  "type": "timeseries",
                  "label": "Conduct soil",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.457358017070415,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728358478698,
                "endTimeMs": 1728444878698
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "grass",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "895cf7ad-1289-ce24-f444-af6422951958"
      },
      "df149aa6-a63a-a3de-1982-9e937a490bfc": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "soil dielectric constant",
                  "type": "timeseries",
                  "label": "Soil dielectric constant",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.457358017070415,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728358478698,
                "endTimeMs": 1728444878698
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "bolt",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "F/m",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "df149aa6-a63a-a3de-1982-9e937a490bfc"
      },
      "1c49297b-c3ad-efa6-d124-a6522fed55f6": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7771803894132627
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.4408153792361391
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728282094945,
                "endTimeMs": 1728368494945
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true,
          "showTitleIcon": false,
          "titleTooltip": "",
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "1c49297b-c3ad-efa6-d124-a6522fed55f6"
      },
      "4597685a-73cb-fb07-363a-88dc376ceffe": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "4597685a-73cb-fb07-363a-88dc376ceffe"
      },
      "9ad27509-6a31-57d4-76ba-dffd2570f435": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.15877881667089944,
                  "units": "°C",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": {
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": true
            },
            "thresholds": [],
            "dataZoom": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "9ad27509-6a31-57d4-76ba-dffd2570f435"
      },
      "c365feed-db21-312d-1d38-0bf709a3de1c": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "humidity",
                  "type": "timeseries",
                  "label": "humidity",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.909322020083501,
                  "units": "%",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": {
            "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": true,
            "stack": false,
            "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,
            "legendLabelFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "legendLabelColor": "rgba(0, 0, 0, 0.76)",
            "legendConfig": {
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": true
            },
            "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,
            "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": "Humidity",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": 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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "c365feed-db21-312d-1d38-0bf709a3de1c"
      },
      "dcbf291b-86c5-ab26-3cf6-944b318255f7": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "dcbf291b-86c5-ab26-3cf6-944b318255f7"
      },
      "14226d56-b942-e37f-6945-37b91114f708": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "14226d56-b942-e37f-6945-37b91114f708"
      },
      "8693d195-3a80-bce0-2daf-53ade294ca9a": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "conduct soil",
                  "type": "timeseries",
                  "label": "Conduct soil",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.457358017070415,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728358478698,
                "endTimeMs": 1728444878698
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "grass",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "8693d195-3a80-bce0-2daf-53ade294ca9a"
      },
      "4e5c6ef0-4998-3973-4191-81e97e3baef7": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "soil dielectric constant",
                  "type": "timeseries",
                  "label": "Soil dielectric constant",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.457358017070415,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728358478698,
                "endTimeMs": 1728444878698
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "bolt",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "F/m",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "4e5c6ef0-4998-3973-4191-81e97e3baef7"
      },
      "602c10a5-cfe4-f2b0-8f05-cee44dfeb050": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7771803894132627
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.4408153792361391
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728282094945,
                "endTimeMs": 1728368494945
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true,
          "showTitleIcon": false,
          "titleTooltip": "",
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "602c10a5-cfe4-f2b0-8f05-cee44dfeb050"
      },
      "83690017-8c30-26fd-8085-e38189dc3392": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "83690017-8c30-26fd-8085-e38189dc3392"
      },
      "0bbd2e89-a82c-bb19-edbd-5bb2c693e9a2": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "0bbd2e89-a82c-bb19-edbd-5bb2c693e9a2"
      },
      "d80fd278-ee46-fafc-1556-e7366ee2b950": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "d80fd278-ee46-fafc-1556-e7366ee2b950"
      },
      "e66a7b43-fd93-701c-0dc5-3d6a2b1549b3": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "e66a7b43-fd93-701c-0dc5-3d6a2b1549b3"
      },
      "7ae48771-3439-ad9c-b809-3be795bdfff5": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "7ae48771-3439-ad9c-b809-3be795bdfff5"
      },
      "b28846dc-6378-d8ed-20f9-b83796b90fb1": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "distance",
                  "type": "timeseries",
                  "label": "Distance",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "b28846dc-6378-d8ed-20f9-b83796b90fb1"
      },
      "7f65ef65-2ac9-833e-0530-31df252461d6": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "7f65ef65-2ac9-833e-0530-31df252461d6"
      },
      "d2dab67c-0293-66f8-b007-24a011eb0bbf": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "d2dab67c-0293-66f8-b007-24a011eb0bbf"
      },
      "1e3f4656-53ad-e657-a345-9eeec671f36e": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "1e3f4656-53ad-e657-a345-9eeec671f36e"
      },
      "9cf4d2c9-a9e2-9524-e6f6-f1f664a9a3da": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "9cf4d2c9-a9e2-9524-e6f6-f1f664a9a3da"
      },
      "28d95d9b-db8c-3425-7826-455c8dc2bcef": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "distance1",
                  "type": "timeseries",
                  "label": "Distance1",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "28d95d9b-db8c-3425-7826-455c8dc2bcef"
      },
      "5d53011a-dedf-b37f-ba0a-b52a3cbfc325": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "distance2",
                  "type": "timeseries",
                  "label": "Distance2",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "5d53011a-dedf-b37f-ba0a-b52a3cbfc325"
      },
      "7086ba9b-30c9-30ea-b195-458e6c29e989": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "7086ba9b-30c9-30ea-b195-458e6c29e989"
      },
      "7bcdd733-9f90-5e0c-7877-8664d0b9d3c8": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "7bcdd733-9f90-5e0c-7877-8664d0b9d3c8"
      },
      "8c82aff0-73d5-2619-5049-60945d58d8d6": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "8c82aff0-73d5-2619-5049-60945d58d8d6"
      },
      "93d3c518-e47d-8269-266b-daadb41a00d8": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "93d3c518-e47d-8269-266b-daadb41a00d8"
      },
      "f812fb0d-89d2-829f-f0be-69a198ad9477": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "f812fb0d-89d2-829f-f0be-69a198ad9477"
      },
      "ed1cf55d-0912-0b66-0f4e-0fe3903b055d": {
        "typeFullFqn": "system.noise_level_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "idc_intput",
                  "type": "timeseries",
                  "label": "Idc_intput",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.4484125671905974,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728436210629,
                "endTimeMs": 1728522610629
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "arrow_forward",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 70,
                  "color": "#FFA600"
                },
                {
                  "from": 70,
                  "to": 90,
                  "color": "#F36900"
                },
                {
                  "from": 90,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 70,
                  "color": "#FFA600"
                },
                {
                  "from": 70,
                  "to": 90,
                  "color": "#F36900"
                },
                {
                  "from": 90,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Noise level card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "ed1cf55d-0912-0b66-0f4e-0fe3903b055d"
      },
      "7de6cbef-eaf4-3a5b-ec00-86945993cc3c": {
        "typeFullFqn": "system.noise_level_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "vdc_intput",
                  "type": "timeseries",
                  "label": "Vdc_intput",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.4484125671905974,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728436210629,
                "endTimeMs": 1728522610629
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "arrow_forward",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 70,
                  "color": "#FFA600"
                },
                {
                  "from": 70,
                  "to": 90,
                  "color": "#F36900"
                },
                {
                  "from": 90,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 70,
                  "color": "#FFA600"
                },
                {
                  "from": 70,
                  "to": 90,
                  "color": "#F36900"
                },
                {
                  "from": 90,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Noise level card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "7de6cbef-eaf4-3a5b-ec00-86945993cc3c"
      },
      "c5217d0a-42e0-7ac9-6f0a-8a44d189fbe2": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "c5217d0a-42e0-7ac9-6f0a-8a44d189fbe2"
      },
      "82acff71-0984-9b6e-2971-5586266449a5": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "82acff71-0984-9b6e-2971-5586266449a5"
      },
      "f0aed422-480f-6d60-f550-29328f78b5f9": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "f0aed422-480f-6d60-f550-29328f78b5f9"
      },
      "a51c4b41-68f4-5ad0-fd04-f08a07ad7a1b": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "a51c4b41-68f4-5ad0-fd04-f08a07ad7a1b"
      },
      "e966bd1f-1831-e3a6-3186-fbb9ed5c2445": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "e966bd1f-1831-e3a6-3186-fbb9ed5c2445"
      },
      "707c2410-1245-ee12-1c05-129919ffb1d0": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "707c2410-1245-ee12-1c05-129919ffb1d0"
      },
      "cc0a65ca-26c0-13ca-403e-0b364658d8a3": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "cc0a65ca-26c0-13ca-403e-0b364658d8a3"
      },
      "c3d730e5-ba81-5bb9-1cc9-774fe316d168": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "c3d730e5-ba81-5bb9-1cc9-774fe316d168"
      },
      "f5d1d599-8c77-9cd5-d442-67a7b99408b4": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "f5d1d599-8c77-9cd5-d442-67a7b99408b4"
      },
      "e5e1fb0a-20b7-cfc5-6204-7d60247a738c": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "e5e1fb0a-20b7-cfc5-6204-7d60247a738c"
      },
      "4e756b27-4f46-2fb8-7b4e-1a3ddc130837": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "4e756b27-4f46-2fb8-7b4e-1a3ddc130837"
      },
      "16033121-10c1-ef4e-3e25-270571af421c": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "16033121-10c1-ef4e-3e25-270571af421c"
      },
      "1f54e0f6-3414-3bae-f54f-f824c07bb6f6": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "1f54e0f6-3414-3bae-f54f-f824c07bb6f6"
      },
      "9a3fe169-07ea-b1de-8a68-2ef70636e5fb": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "9a3fe169-07ea-b1de-8a68-2ef70636e5fb"
      },
      "097a1ef5-0e8b-3c24-29e9-94b3d8ed8b40": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "097a1ef5-0e8b-3c24-29e9-94b3d8ed8b40"
      },
      "0fb37393-ca69-d17c-9071-4f6491b04e66": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.2516608603675825,
                  "units": "°C",
                  "decimals": 3
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 1000
            },
            "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": {
            "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": true,
            "stack": false,
            "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,
            "legendLabelFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "legendLabelColor": "rgba(0, 0, 0, 0.76)",
            "legendConfig": {
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": true
            },
            "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,
            "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": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": 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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "0fb37393-ca69-d17c-9071-4f6491b04e66"
      },
      "b984b4f6-c347-9c56-7bdc-9e78d287d4b3": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "humidity",
                  "type": "timeseries",
                  "label": "humidity",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.909322020083501,
                  "units": "%",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": {
            "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": true,
            "stack": false,
            "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,
            "legendLabelFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "legendLabelColor": "rgba(0, 0, 0, 0.76)",
            "legendConfig": {
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": true
            },
            "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,
            "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": "Humidity",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": 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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "b984b4f6-c347-9c56-7bdc-9e78d287d4b3"
      },
      "52854188-8bab-29ff-0656-83cfd37cf2de": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.49850948906741244,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728286563613,
                "endTimeMs": 1728372963613
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "52854188-8bab-29ff-0656-83cfd37cf2de"
      },
      "80ac2860-02d4-9b85-4120-274429f51beb": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.49850948906741244,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728286563613,
                "endTimeMs": 1728372963613
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "80ac2860-02d4-9b85-4120-274429f51beb"
      },
      "df87e64c-0435-4919-136b-38785234f73c": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7771803894132627
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.4408153792361391
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728282094945,
                "endTimeMs": 1728368494945
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true,
          "showTitleIcon": false,
          "titleTooltip": "",
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "df87e64c-0435-4919-136b-38785234f73c"
      },
      "c76fa06b-4e50-e3e3-a742-fd65cec51ccf": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "c76fa06b-4e50-e3e3-a742-fd65cec51ccf"
      },
      "f9e1cb80-c13a-ef95-b009-1f3602e56d06": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "f9e1cb80-c13a-ef95-b009-1f3602e56d06"
      },
      "6dba5b2b-3eac-7085-25fe-a03b543d5073": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "6dba5b2b-3eac-7085-25fe-a03b543d5073"
      },
      "7d105d8c-58c5-40fa-7122-6325a09db820": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.15877881667089944,
                  "units": "°C",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": {
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": true
            },
            "thresholds": [],
            "dataZoom": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "7d105d8c-58c5-40fa-7122-6325a09db820"
      },
      "d5221a2f-7d85-41d1-09b3-3dacaabdec9e": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "humidity",
                  "type": "timeseries",
                  "label": "humidity",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.6087754931868925,
                  "units": "%",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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"
          },
          "title": "Humidity",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "d5221a2f-7d85-41d1-09b3-3dacaabdec9e"
      },
      "0af53d65-8e68-9126-846a-64ab5e051c44": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "0af53d65-8e68-9126-846a-64ab5e051c44"
      },
      "f00abec7-413e-cc61-eebe-84cb1cbc3512": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "f00abec7-413e-cc61-eebe-84cb1cbc3512"
      },
      "0a74343f-4546-78c4-b147-e9389d4c9444": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "0a74343f-4546-78c4-b147-e9389d4c9444"
      },
      "1d104917-dd9c-6497-16cb-c9a66161ff1c": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "1d104917-dd9c-6497-16cb-c9a66161ff1c"
      },
      "be99d622-bcdb-0d46-f2fa-af1d464eb085": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "be99d622-bcdb-0d46-f2fa-af1d464eb085"
      },
      "22ca142d-6a34-4675-0984-5df1ddfbae5d": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "22ca142d-6a34-4675-0984-5df1ddfbae5d"
      },
      "6cff576f-a465-1cec-9176-eed961f321d3": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.15877881667089944,
                  "units": "°C",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": {
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": true
            },
            "thresholds": [],
            "dataZoom": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "6cff576f-a465-1cec-9176-eed961f321d3"
      },
      "ac357574-8cd9-d313-8141-18f82091e808": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "humidity",
                  "type": "timeseries",
                  "label": "humidity",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.909322020083501,
                  "units": "%",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": {
            "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": true,
            "stack": false,
            "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,
            "legendLabelFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "legendLabelColor": "rgba(0, 0, 0, 0.76)",
            "legendConfig": {
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": true
            },
            "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,
            "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": "Humidity",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": 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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "ac357574-8cd9-d313-8141-18f82091e808"
      },
      "b6c48cd0-32f4-f9c1-153e-25977c1a08c1": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "b6c48cd0-32f4-f9c1-153e-25977c1a08c1"
      },
      "ea4efe29-b0d1-8a3f-ee6e-bfb6da5f3d9e": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "ea4efe29-b0d1-8a3f-ee6e-bfb6da5f3d9e"
      },
      "511238dc-3814-908f-0f1f-3fb5bbdb0d45": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "conduct soil",
                  "type": "timeseries",
                  "label": "Conduct soil",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.457358017070415,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728358478698,
                "endTimeMs": 1728444878698
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "grass",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "511238dc-3814-908f-0f1f-3fb5bbdb0d45"
      },
      "9626529c-0452-d33b-af8e-5780f9539b6a": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "soil dielectric constant",
                  "type": "timeseries",
                  "label": "Soil dielectric constant",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.457358017070415,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728358478698,
                "endTimeMs": 1728444878698
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "bolt",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "F/m",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "9626529c-0452-d33b-af8e-5780f9539b6a"
      },
      "1288d159-af84-333f-5c6a-2a72a6d16e92": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7771803894132627
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.4408153792361391
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728282094945,
                "endTimeMs": 1728368494945
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true,
          "showTitleIcon": false,
          "titleTooltip": "",
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "1288d159-af84-333f-5c6a-2a72a6d16e92"
      },
      "7399a882-c1e9-c109-a02a-31b37c5f3671": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7771803894132627
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.4408153792361391
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728282094945,
                "endTimeMs": 1728368494945
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true,
          "showTitleIcon": false,
          "titleTooltip": "",
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "7399a882-c1e9-c109-a02a-31b37c5f3671"
      },
      "8ec81390-19fc-5440-ac99-db94d6a1d4a7": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "8ec81390-19fc-5440-ac99-db94d6a1d4a7"
      },
      "0ca0607f-f279-4270-4723-0dc4d5480366": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.15877881667089944,
                  "units": "°C",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": {
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": true
            },
            "thresholds": [],
            "dataZoom": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "0ca0607f-f279-4270-4723-0dc4d5480366"
      },
      "cd0eb3d1-ba90-7299-206e-bc64793303d0": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "humidity",
                  "type": "timeseries",
                  "label": "humidity",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.909322020083501,
                  "units": "%",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": {
            "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": true,
            "stack": false,
            "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,
            "legendLabelFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "legendLabelColor": "rgba(0, 0, 0, 0.76)",
            "legendConfig": {
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": true
            },
            "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,
            "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": "Humidity",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": 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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "cd0eb3d1-ba90-7299-206e-bc64793303d0"
      },
      "79a83879-bfef-e0ae-459d-d93b5e401036": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "79a83879-bfef-e0ae-459d-d93b5e401036"
      },
      "ecbeb8c5-c57e-03fb-35ec-c853083e94e7": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "ecbeb8c5-c57e-03fb-35ec-c853083e94e7"
      },
      "bac094dc-fc34-b209-41c6-9571709d70b5": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "conduct soil",
                  "type": "timeseries",
                  "label": "Conduct soil",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.457358017070415,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728358478698,
                "endTimeMs": 1728444878698
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "grass",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "bac094dc-fc34-b209-41c6-9571709d70b5"
      },
      "d8b3c760-fb74-70e4-6824-9be04b9b97af": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "soil dielectric constant",
                  "type": "timeseries",
                  "label": "Soil dielectric constant",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.457358017070415,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728358478698,
                "endTimeMs": 1728444878698
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "bolt",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "F/m",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "d8b3c760-fb74-70e4-6824-9be04b9b97af"
      },
      "2dad0458-51a8-9166-c033-86d633d3efc2": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "2dad0458-51a8-9166-c033-86d633d3efc2"
      },
      "e01c0ac0-26e0-7472-23c9-34690ff5bcc7": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "e01c0ac0-26e0-7472-23c9-34690ff5bcc7"
      },
      "d276c54c-a81f-926f-2624-b0ef0305d5e3": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "d276c54c-a81f-926f-2624-b0ef0305d5e3"
      },
      "314b1323-417f-1fe9-8bc5-3c0145e9bc92": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7771803894132627
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.4408153792361391
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728282094945,
                "endTimeMs": 1728368494945
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true,
          "showTitleIcon": false,
          "titleTooltip": "",
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "314b1323-417f-1fe9-8bc5-3c0145e9bc92"
      },
      "d4c524d6-d100-b4d4-01fb-7a198b94facf": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "d4c524d6-d100-b4d4-01fb-7a198b94facf"
      },
      "6c3d21dd-4f37-e428-8e9f-4c652fcaa604": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.15877881667089944,
                  "units": "°C",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": {
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": true
            },
            "thresholds": [],
            "dataZoom": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "6c3d21dd-4f37-e428-8e9f-4c652fcaa604"
      },
      "de264e45-c8d1-38af-f038-d48a7194acee": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "ph",
                  "type": "timeseries",
                  "label": "Ph",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.13314348122016062,
                  "units": "",
                  "decimals": 0,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": {
            "yAxes": {
              "default": {
                "units": null,
                "decimals": 3,
                "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,
                "min": 0,
                "max": 14
              }
            },
            "thresholds": [],
            "dataZoom": true,
            "stack": false,
            "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,
            "legendLabelFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "legendLabelColor": "rgba(0, 0, 0, 0.76)",
            "legendConfig": {
              "direction": "column",
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": false,
              "showTotal": false,
              "showLatest": true
            },
            "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,
            "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": "Ph",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "de264e45-c8d1-38af-f038-d48a7194acee"
      },
      "d676500d-f6ae-1f94-d43b-26c1bd07c8bb": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "d676500d-f6ae-1f94-d43b-26c1bd07c8bb"
      },
      "e5fe7270-fcea-4c3b-a841-4040e6fa1de5": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "e5fe7270-fcea-4c3b-a841-4040e6fa1de5"
      },
      "3574171a-40bb-0ea9-96f3-63e79c893480": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7771803894132627
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.4408153792361391
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728282094945,
                "endTimeMs": 1728368494945
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true,
          "showTitleIcon": false,
          "titleTooltip": "",
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "3574171a-40bb-0ea9-96f3-63e79c893480"
      },
      "d8341411-3468-1e61-ebf4-013d699ef0a0": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "d8341411-3468-1e61-ebf4-013d699ef0a0"
      },
      "981d69d6-5343-acb8-495f-fc25ed377165": {
        "typeFullFqn": "system.horizontal_volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "alarm",
                  "type": "timeseries",
                  "label": "Alarm",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.9042345065170903,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728371608966,
                "endTimeMs": 1728458008966
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "error_outline",
            "iconColor": {
              "type": "constant",
              "color": "rgba(193, 17, 17, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "981d69d6-5343-acb8-495f-fc25ed377165"
      },
      "7e000efe-860a-687c-924a-559553428eba": {
        "typeFullFqn": "system.noise_level_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "pulse",
                  "type": "timeseries",
                  "label": "Pulse",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.49611845232090834,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728371384108,
                "endTimeMs": 1728457784108
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "auto_graph",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 70,
                  "color": "#FFA600"
                },
                {
                  "from": 70,
                  "to": 90,
                  "color": "#F36900"
                },
                {
                  "from": 90,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 70,
                  "color": "#FFA600"
                },
                {
                  "from": 70,
                  "to": 90,
                  "color": "#F36900"
                },
                {
                  "from": 90,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Noise level card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "7e000efe-860a-687c-924a-559553428eba"
      },
      "40b69c2a-7cf5-9f19-d6fe-2962825ccc35": {
        "typeFullFqn": "system.indoor_humidity_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "water_flow",
                  "type": "timeseries",
                  "label": "Water_flow",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6793736584613641,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728370486837,
                "endTimeMs": 1728456886837
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:water-percent",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 30,
                  "color": "#FFA600"
                },
                {
                  "from": 30,
                  "to": 60,
                  "color": "#3FA71A"
                },
                {
                  "from": 60,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 30,
                  "color": "#FFA600"
                },
                {
                  "from": 30,
                  "to": 60,
                  "color": "#3FA71A"
                },
                {
                  "from": 60,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Humidity card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "40b69c2a-7cf5-9f19-d6fe-2962825ccc35"
      },
      "a32da11e-be14-1611-1a32-6e5cc8099d24": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "a32da11e-be14-1611-1a32-6e5cc8099d24"
      },
      "0102add1-26c5-edb9-d520-441b1bbd758c": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "0102add1-26c5-edb9-d520-441b1bbd758c"
      },
      "a05c9acf-4539-8650-10f1-37122774fb22": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "a05c9acf-4539-8650-10f1-37122774fb22"
      },
      "0aed3d24-52cb-eb60-2d83-7b0fb106ce39": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "0aed3d24-52cb-eb60-2d83-7b0fb106ce39"
      },
      "e15add3a-eb6c-f467-9491-dc1ac2407f50": {
        "typeFullFqn": "system.horizontal_volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "alarm",
                  "type": "timeseries",
                  "label": "Alarm",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.9042345065170903,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728371608966,
                "endTimeMs": 1728458008966
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "error_outline",
            "iconColor": {
              "type": "constant",
              "color": "rgba(193, 17, 17, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "e15add3a-eb6c-f467-9491-dc1ac2407f50"
      },
      "2d799a23-46ce-4dfe-26eb-332ffeb48f53": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "2d799a23-46ce-4dfe-26eb-332ffeb48f53"
      },
      "2ce10e83-d63b-72f3-4726-6320c1e4d90d": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.3658233476242203,
                  "units": "°C",
                  "decimals": 3
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": {
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": false,
              "showTotal": false,
              "showLatest": true
            },
            "thresholds": [],
            "dataZoom": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "2ce10e83-d63b-72f3-4726-6320c1e4d90d"
      },
      "67518ddf-a6c1-e05f-c10e-c452c5b6c87b": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "67518ddf-a6c1-e05f-c10e-c452c5b6c87b"
      },
      "662137fe-5962-71a6-1d95-d8e3f4278422": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "662137fe-5962-71a6-1d95-d8e3f4278422"
      },
      "40646068-4804-cf34-bcb3-93629fcc3f5e": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "40646068-4804-cf34-bcb3-93629fcc3f5e"
      },
      "264be053-ca43-2cd2-0ae2-3c3efa2a05fd": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.3658233476242203,
                  "units": "°C",
                  "decimals": 3
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": {
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": false,
              "showTotal": false,
              "showLatest": true
            },
            "thresholds": [],
            "dataZoom": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "264be053-ca43-2cd2-0ae2-3c3efa2a05fd"
      },
      "30c022a2-902d-ddfa-fbfc-ce6d28bd2a54": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.20384553217817936
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.605752635292077
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728444438553,
                "endTimeMs": 1728530838553
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "30c022a2-902d-ddfa-fbfc-ce6d28bd2a54"
      },
      "99f100cd-46f1-4a3f-b9b1-c752b52e0fd0": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "99f100cd-46f1-4a3f-b9b1-c752b52e0fd0"
      },
      "539254bc-b8fd-33f1-69bd-064b87c86bfc": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "539254bc-b8fd-33f1-69bd-064b87c86bfc"
      },
      "a29ae1cf-d233-10c6-18a0-599045d49e14": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "roll",
                  "type": "timeseries",
                  "label": "Roll",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7473028392325645,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728443874202,
                "endTimeMs": 1728530274202
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "arrow_forward",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 2,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "a29ae1cf-d233-10c6-18a0-599045d49e14"
      },
      "f955fff0-3378-4cc0-b796-1f7fdfd33d1f": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "pitch",
                  "type": "timeseries",
                  "label": "Pitch",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7473028392325645,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728443874202,
                "endTimeMs": 1728530274202
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "arrow_forward",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 2,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "f955fff0-3378-4cc0-b796-1f7fdfd33d1f"
      },
      "0f847003-4195-0e39-e04e-03a33b488a95": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "0f847003-4195-0e39-e04e-03a33b488a95"
      },
      "493ecc06-e3ae-58a6-591f-61d513973ba8": {
        "typeFullFqn": "system.indoor_horizontal_illuminance_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "leak_status",
                  "type": "timeseries",
                  "label": "leak_status",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.4994674309596896,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372047748,
                "endTimeMs": 1728458447748
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "error_outline",
            "iconColor": {
              "type": "constant",
              "color": "rgba(210, 26, 26, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 100,
                  "color": "rgba(0, 0, 0, 0.76)"
                },
                {
                  "from": 100,
                  "to": 300,
                  "color": "#FFA600"
                },
                {
                  "from": 300,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Indoor horizontal illuminance card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "493ecc06-e3ae-58a6-591f-61d513973ba8"
      },
      "dfe42aae-56d5-1e4f-3c2c-0f95aaa95d1d": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7771803894132627
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.4408153792361391
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728282094945,
                "endTimeMs": 1728368494945
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true,
          "showTitleIcon": false,
          "titleTooltip": "",
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "dfe42aae-56d5-1e4f-3c2c-0f95aaa95d1d"
      },
      "6ff28047-e267-14c3-fa6a-fa069da64bdb": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "6ff28047-e267-14c3-fa6a-fa069da64bdb"
      },
      "1533a3c0-0925-bd10-13db-6ab93bfb588e": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "1533a3c0-0925-bd10-13db-6ab93bfb588e"
      },
      "d28e203e-f2ba-47f5-098b-8e0456e703ef": {
        "typeFullFqn": "system.sulfur_dioxide_so2_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "last_leak_time",
                  "type": "timeseries",
                  "label": "Last_leak_time",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8905801167543967,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372252536,
                "endTimeMs": 1728458652536
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "public",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 100,
                  "color": "#3FA71A"
                },
                {
                  "from": 100,
                  "to": 200,
                  "color": "#80C32C"
                },
                {
                  "from": 200,
                  "to": 350,
                  "color": "#FFA600"
                },
                {
                  "from": 350,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 28,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 100,
                  "color": "#3FA71A"
                },
                {
                  "from": 100,
                  "to": 200,
                  "color": "#80C32C"
                },
                {
                  "from": 200,
                  "to": 350,
                  "color": "#FFA600"
                },
                {
                  "from": 350,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Sulfur dioxide",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "d28e203e-f2ba-47f5-098b-8e0456e703ef"
      },
      "ea0fdc4e-801f-22bf-adf1-07ef87bf41a7": {
        "typeFullFqn": "system.sulfur_dioxide_so2_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "leak_times",
                  "type": "timeseries",
                  "label": "Leak_times",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8905801167543967,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728372252536,
                "endTimeMs": 1728458652536
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "public",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 100,
                  "color": "#3FA71A"
                },
                {
                  "from": 100,
                  "to": 200,
                  "color": "#80C32C"
                },
                {
                  "from": 200,
                  "to": 350,
                  "color": "#FFA600"
                },
                {
                  "from": 350,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 28,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 100,
                  "color": "#3FA71A"
                },
                {
                  "from": 100,
                  "to": 200,
                  "color": "#80C32C"
                },
                {
                  "from": 200,
                  "to": 350,
                  "color": "#FFA600"
                },
                {
                  "from": 350,
                  "to": 500,
                  "color": "#F36900"
                },
                {
                  "from": 500,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Sulfur dioxide",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "ea0fdc4e-801f-22bf-adf1-07ef87bf41a7"
      },
      "13d6fac9-851e-c311-5acd-c0d56c18b3e1": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "13d6fac9-851e-c311-5acd-c0d56c18b3e1"
      },
      "0eaa8370-1af5-9825-f206-5e9aba0a6242": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "DO",
                  "type": "timeseries",
                  "label": "DO",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6727142552738135,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728444867403,
                "endTimeMs": 1728531267403
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "play_arrow",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "0eaa8370-1af5-9825-f206-5e9aba0a6242"
      },
      "f327fd43-c52a-829e-1854-2ad3021d9c5f": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7771803894132627
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.4408153792361391
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728282094945,
                "endTimeMs": 1728368494945
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true,
          "showTitleIcon": false,
          "titleTooltip": "",
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "f327fd43-c52a-829e-1854-2ad3021d9c5f"
      },
      "d5a67641-6f0c-8065-2b67-c6544974574f": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "d5a67641-6f0c-8065-2b67-c6544974574f"
      },
      "cc0779e7-f285-ae96-7c84-28423b34f55e": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "cc0779e7-f285-ae96-7c84-28423b34f55e"
      },
      "5e8d295f-f2d8-4ef9-1990-4dd9ece2b5cd": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "EC_K1",
                  "type": "timeseries",
                  "label": "EC_K1",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6727142552738135,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728444867403,
                "endTimeMs": 1728531267403
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "play_arrow",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "5e8d295f-f2d8-4ef9-1990-4dd9ece2b5cd"
      },
      "1560e6da-1790-2332-df4e-ed51c6dfbc80": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "Humidity",
                  "type": "timeseries",
                  "label": "EC_K1",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.018992381160873206
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728444867403,
                "endTimeMs": 1728531267403
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "play_arrow",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": {
                "advancedMode": false,
                "range": [
                  {
                    "from": null,
                    "to": 18,
                    "color": "#234CC7"
                  },
                  {
                    "from": 18,
                    "to": 24,
                    "color": "#3FA71A"
                  },
                  {
                    "from": 24,
                    "to": null,
                    "color": "#D81838"
                  }
                ]
              },
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": {
                "advancedMode": false,
                "range": [
                  {
                    "from": null,
                    "to": 18,
                    "color": "#234CC7"
                  },
                  {
                    "from": 18,
                    "to": 24,
                    "color": "#3FA71A"
                  },
                  {
                    "from": 24,
                    "to": null,
                    "color": "#D81838"
                  }
                ]
              }
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true,
            "padding": ""
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "1560e6da-1790-2332-df4e-ed51c6dfbc80"
      },
      "b83fd393-c6cd-8044-d513-a7664b69ca8b": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "EC_K1",
                  "type": "timeseries",
                  "label": "EC_K1",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6727142552738135,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728444867403,
                "endTimeMs": 1728531267403
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "play_arrow",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "b83fd393-c6cd-8044-d513-a7664b69ca8b"
      },
      "9301ad22-4d62-566d-bd30-20de0a7357e3": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "EC_K1",
                  "type": "timeseries",
                  "label": "EC_K1",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6727142552738135,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728444867403,
                "endTimeMs": 1728531267403
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "play_arrow",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "9301ad22-4d62-566d-bd30-20de0a7357e3"
      },
      "c28fcc68-9009-39d7-5b16-822dbe27e338": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "EC_K1",
                  "type": "timeseries",
                  "label": "EC_K1",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6727142552738135,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728444867403,
                "endTimeMs": 1728531267403
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "play_arrow",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "c28fcc68-9009-39d7-5b16-822dbe27e338"
      },
      "04e1d8ad-020d-b74a-97d2-2e6b68ec353c": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "EC_K1",
                  "type": "timeseries",
                  "label": "EC_K1",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6727142552738135,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728444867403,
                "endTimeMs": 1728531267403
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "play_arrow",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "04e1d8ad-020d-b74a-97d2-2e6b68ec353c"
      },
      "9c0230ef-a120-b819-4e4c-9761eaea5c54": {
        "typeFullFqn": "system.cards.timeseries_table",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 6.5,
        "config": {
          "datasources": [
            {
              "type": "device",
              "name": "",
              "deviceId": "f66dc3f0-8326-11f0-8cca-ddfec916fd3d",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "adc1",
                  "type": "timeseries",
                  "label": "adc1",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8319445044067149,
                  "decimals": 2
                },
                {
                  "name": "adc3",
                  "type": "timeseries",
                  "label": "adc3",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.918945498928176,
                  "decimals": 2
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 7200000,
              "timewindowMs": 3456000000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1729764607901,
                "endTimeMs": 1729851007901
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            },
            "timezone": null
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "showTimestamp": true,
            "displayPagination": true,
            "defaultPageSize": 10,
            "enableSearch": true,
            "enableSelectColumnDisplay": true
          },
          "title": "Umidità",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "displayTimewindow": false,
          "configMode": "advanced",
          "titleFont": null,
          "titleColor": null,
          "titleIcon": null,
          "enableDataExport": true,
          "titleTooltip": "",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "9c0230ef-a120-b819-4e4c-9761eaea5c54"
      },
      "9ada085e-d97b-6404-538c-67a22b26323e": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "9ada085e-d97b-6404-538c-67a22b26323e"
      },
      "a4402d58-97ea-9fff-b735-01b0060165a1": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "Humidity",
                  "type": "timeseries",
                  "label": "EC_K1",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.018992381160873206
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728444867403,
                "endTimeMs": 1728531267403
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "play_arrow",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": {
                "advancedMode": false,
                "range": [
                  {
                    "from": null,
                    "to": 18,
                    "color": "#234CC7"
                  },
                  {
                    "from": 18,
                    "to": 24,
                    "color": "#3FA71A"
                  },
                  {
                    "from": 24,
                    "to": null,
                    "color": "#D81838"
                  }
                ]
              },
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": {
                "advancedMode": false,
                "range": [
                  {
                    "from": null,
                    "to": 18,
                    "color": "#234CC7"
                  },
                  {
                    "from": 18,
                    "to": 24,
                    "color": "#3FA71A"
                  },
                  {
                    "from": 24,
                    "to": null,
                    "color": "#D81838"
                  }
                ]
              }
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true,
            "padding": ""
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "a4402d58-97ea-9fff-b735-01b0060165a1"
      },
      "2d20bf06-9622-8857-ad8e-a0b14a0080fb": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "EC_K1",
                  "type": "timeseries",
                  "label": "EC_K1",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6727142552738135,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728444867403,
                "endTimeMs": 1728531267403
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "play_arrow",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "2d20bf06-9622-8857-ad8e-a0b14a0080fb"
      },
      "496d8ad6-ae7a-14b2-bca3-24c7de713782": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "EC_K1",
                  "type": "timeseries",
                  "label": "EC_K1",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6727142552738135,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728444867403,
                "endTimeMs": 1728531267403
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "play_arrow",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "496d8ad6-ae7a-14b2-bca3-24c7de713782"
      },
      "001b8559-6b67-4ab4-2dbb-eedb96212ddc": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "EC_K1",
                  "type": "timeseries",
                  "label": "EC_K1",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6727142552738135,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728444867403,
                "endTimeMs": 1728531267403
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "play_arrow",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "001b8559-6b67-4ab4-2dbb-eedb96212ddc"
      },
      "ff3edacb-3d8e-49da-a340-988bed365710": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "EC_K1",
                  "type": "timeseries",
                  "label": "EC_K1",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6727142552738135,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728444867403,
                "endTimeMs": 1728531267403
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "play_arrow",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "ff3edacb-3d8e-49da-a340-988bed365710"
      },
      "e65108a5-cb46-dccf-b4ca-da810fa8f08d": {
        "typeFullFqn": "system.cards.timeseries_table",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 6.5,
        "config": {
          "datasources": [
            {
              "type": "device",
              "name": "",
              "deviceId": "f66dc3f0-8326-11f0-8cca-ddfec916fd3d",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "adc1",
                  "type": "timeseries",
                  "label": "adc1",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8319445044067149,
                  "decimals": 2
                },
                {
                  "name": "adc3",
                  "type": "timeseries",
                  "label": "adc3",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.918945498928176,
                  "decimals": 2
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 7200000,
              "timewindowMs": 3456000000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1729764607901,
                "endTimeMs": 1729851007901
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            },
            "timezone": null
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "showTimestamp": true,
            "displayPagination": true,
            "defaultPageSize": 10,
            "enableSearch": true,
            "enableSelectColumnDisplay": true
          },
          "title": "Umidità",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "displayTimewindow": false,
          "configMode": "advanced",
          "titleFont": null,
          "titleColor": null,
          "titleIcon": null,
          "enableDataExport": true,
          "titleTooltip": "",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "e65108a5-cb46-dccf-b4ca-da810fa8f08d"
      },
      "1728ad0a-5819-126b-b316-b067cb97dfa1": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "1728ad0a-5819-126b-b316-b067cb97dfa1"
      },
      "afd79836-2722-9bbe-c500-a492818b2f2a": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "afd79836-2722-9bbe-c500-a492818b2f2a"
      },
      "4be1caa6-2639-524d-bf60-9700949b5d5e": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "4be1caa6-2639-524d-bf60-9700949b5d5e"
      },
      "f7b7980d-04d4-16fe-6469-091dba22e46d": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "f7b7980d-04d4-16fe-6469-091dba22e46d"
      },
      "877ec027-a31d-b7df-a0a3-1d22b9fc1150": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7771803894132627
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.4408153792361391
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728282094945,
                "endTimeMs": 1728368494945
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true,
          "showTitleIcon": false,
          "titleTooltip": "",
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "877ec027-a31d-b7df-a0a3-1d22b9fc1150"
      },
      "e87d8894-c392-7b48-6354-a380a2d4db73": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7771803894132627
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.4408153792361391
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728282094945,
                "endTimeMs": 1728368494945
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true,
          "showTitleIcon": false,
          "titleTooltip": "",
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "e87d8894-c392-7b48-6354-a380a2d4db73"
      },
      "f7e0ef12-4281-16a2-267a-79a45c863e5d": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "f7e0ef12-4281-16a2-267a-79a45c863e5d"
      },
      "a6a5dc12-51c7-259f-c8ac-176303dccf87": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "a6a5dc12-51c7-259f-c8ac-176303dccf87"
      },
      "13867e94-eeb2-ca22-79c7-70aec9b3f853": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "13867e94-eeb2-ca22-79c7-70aec9b3f853"
      },
      "c765a04e-ac43-3d10-1af0-03a95bc5b5b4": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "c765a04e-ac43-3d10-1af0-03a95bc5b5b4"
      },
      "bb06243f-63c4-4675-8c53-7dff335a0b64": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "bb06243f-63c4-4675-8c53-7dff335a0b64"
      },
      "fe30dd81-70ec-1a85-4534-30ac6dd15dee": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "fe30dd81-70ec-1a85-4534-30ac6dd15dee"
      },
      "96cc9c4f-5c70-1e7d-6ad3-b87eb8e1e0d5": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7771803894132627
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.4408153792361391
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728282094945,
                "endTimeMs": 1728368494945
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true,
          "showTitleIcon": false,
          "titleTooltip": "",
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "96cc9c4f-5c70-1e7d-6ad3-b87eb8e1e0d5"
      },
      "2cc9cf98-6dc8-a102-96f8-59f61951da0e": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7771803894132627
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.4408153792361391
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728282094945,
                "endTimeMs": 1728368494945
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true,
          "showTitleIcon": false,
          "titleTooltip": "",
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "2cc9cf98-6dc8-a102-96f8-59f61951da0e"
      },
      "9b34b869-12b5-fc79-93d0-081da23ba602": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "9b34b869-12b5-fc79-93d0-081da23ba602"
      },
      "6b9222db-0670-e28c-a170-dd212d58f5c6": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "6b9222db-0670-e28c-a170-dd212d58f5c6"
      },
      "5ac4f035-81e8-192e-0865-b20c5aaf8639": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "5ac4f035-81e8-192e-0865-b20c5aaf8639"
      },
      "53f78a76-45a4-8c56-abbd-090716229c11": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "53f78a76-45a4-8c56-abbd-090716229c11"
      },
      "e6193ae7-e0ea-7787-9610-0632b0d0d274": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "e6193ae7-e0ea-7787-9610-0632b0d0d274"
      },
      "acace7c9-c0c2-4943-cb3c-b9d0d185abe6": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "acace7c9-c0c2-4943-cb3c-b9d0d185abe6"
      },
      "a2d87de4-0c66-f486-0bc9-15e6cf7a74cc": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "a2d87de4-0c66-f486-0bc9-15e6cf7a74cc"
      },
      "a4c3d8b8-5272-eeff-759f-37ab95e49bf9": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "a4c3d8b8-5272-eeff-759f-37ab95e49bf9"
      },
      "0c090cd6-1907-2a5f-aabc-88e7521dbd3d": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "0c090cd6-1907-2a5f-aabc-88e7521dbd3d"
      },
      "aac26a7e-fee9-a95d-11f9-36f63a82ed6f": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "aac26a7e-fee9-a95d-11f9-36f63a82ed6f"
      },
      "2b502e97-f9c0-7ed5-1825-d3bb92f1cdf7": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "2b502e97-f9c0-7ed5-1825-d3bb92f1cdf7"
      },
      "60090ae2-1331-8465-cf8b-331c9dc9769c": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "60090ae2-1331-8465-cf8b-331c9dc9769c"
      },
      "73de180d-3552-13cc-c2d2-51aceb945d40": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "73de180d-3552-13cc-c2d2-51aceb945d40"
      },
      "319efbca-05ee-bfd5-1489-8e2d08d6557f": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "319efbca-05ee-bfd5-1489-8e2d08d6557f"
      },
      "c070c586-486c-bda7-b5e4-11284c65895e": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "c070c586-486c-bda7-b5e4-11284c65895e"
      },
      "ddcd6bff-a940-5171-342f-6a0b165001c6": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "ddcd6bff-a940-5171-342f-6a0b165001c6"
      },
      "e7c83f2e-72cd-d62c-dbfc-33f3fe14069f": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "e7c83f2e-72cd-d62c-dbfc-33f3fe14069f"
      },
      "eeee3f4c-4248-689e-970a-0b5fb5c04274": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "distance1",
                  "type": "timeseries",
                  "label": "Distance1",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "eeee3f4c-4248-689e-970a-0b5fb5c04274"
      },
      "c2ce95c7-b131-6c9c-0c32-27dffe1f8540": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "distance2",
                  "type": "timeseries",
                  "label": "Distance2",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "c2ce95c7-b131-6c9c-0c32-27dffe1f8540"
      },
      "04778aa8-4f4e-2c15-646b-251e9689b9f7": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "04778aa8-4f4e-2c15-646b-251e9689b9f7"
      },
      "d57a78cd-f088-d096-4be4-70935ae1e92b": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "d57a78cd-f088-d096-4be4-70935ae1e92b"
      },
      "38a5acc5-3294-f207-d8df-42800229659d": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} 掳C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "38a5acc5-3294-f207-d8df-42800229659d"
      },
      "0979969f-9dae-b34e-c5d6-bba4e0724a5f": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "0979969f-9dae-b34e-c5d6-bba4e0724a5f"
      },
      "6f73a5da-1bf7-42ea-4542-428e58682bf5": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "distance1",
                  "type": "timeseries",
                  "label": "Distance1",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "6f73a5da-1bf7-42ea-4542-428e58682bf5"
      },
      "1ed4fd0b-1826-2379-2f3a-afd968b7e693": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "distance2",
                  "type": "timeseries",
                  "label": "Distance2",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "1ed4fd0b-1826-2379-2f3a-afd968b7e693"
      },
      "0e89eea1-f5ff-93e8-8b18-fa693e61b7c6": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "0e89eea1-f5ff-93e8-8b18-fa693e61b7c6"
      },
      "2e38ea91-a884-a6d8-4fef-1c8dfef43e48": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "2e38ea91-a884-a6d8-4fef-1c8dfef43e48"
      },
      "cd25695d-12bd-8c69-2976-3b624bb5b95c": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} 掳C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "cd25695d-12bd-8c69-2976-3b624bb5b95c"
      },
      "24a34dc5-1a3b-092d-0bb2-d8aeb08f77e7": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "24a34dc5-1a3b-092d-0bb2-d8aeb08f77e7"
      },
      "bb33b670-12c4-968f-0346-d9ab922a59fb": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "distance1",
                  "type": "timeseries",
                  "label": "Distance1",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "bb33b670-12c4-968f-0346-d9ab922a59fb"
      },
      "4217a2f5-4633-c5f9-db05-e4ab2da178a2": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "distance2",
                  "type": "timeseries",
                  "label": "Distance2",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "4217a2f5-4633-c5f9-db05-e4ab2da178a2"
      },
      "94a0ac38-8103-6b68-0ebb-1630e6f89857": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "94a0ac38-8103-6b68-0ebb-1630e6f89857"
      },
      "9631b269-45d6-a2d4-a92c-00a9101ef268": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "9631b269-45d6-a2d4-a92c-00a9101ef268"
      },
      "aa6b33bc-95e6-f3f4-77b2-80117bbb507b": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} 掳C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "aa6b33bc-95e6-f3f4-77b2-80117bbb507b"
      },
      "dca14263-960d-f552-093d-46299cf98540": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "dca14263-960d-f552-093d-46299cf98540"
      },
      "c0df7ab3-963e-800e-94a8-54b356ae2bb6": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "distance1",
                  "type": "timeseries",
                  "label": "Distance1",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "c0df7ab3-963e-800e-94a8-54b356ae2bb6"
      },
      "d803616d-25be-2c39-ce82-a75999b17d8b": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "distance2",
                  "type": "timeseries",
                  "label": "Distance2",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "d803616d-25be-2c39-ce82-a75999b17d8b"
      },
      "985a499c-b849-3eb4-8145-28fe6b72afed": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "985a499c-b849-3eb4-8145-28fe6b72afed"
      },
      "446c9674-5d8c-4f32-66ef-c7bb6823cdc2": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "446c9674-5d8c-4f32-66ef-c7bb6823cdc2"
      },
      "e091191e-e982-6b7f-7c35-5e9a4a5e9a63": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} 掳C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "e091191e-e982-6b7f-7c35-5e9a4a5e9a63"
      },
      "30048121-0f85-fcc8-ae5d-e8ae17f660e5": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} 掳C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "30048121-0f85-fcc8-ae5d-e8ae17f660e5"
      },
      "260764aa-d14f-e117-1162-35cf69d0ff2b": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "260764aa-d14f-e117-1162-35cf69d0ff2b"
      },
      "b8640852-c8c8-a867-5d1c-ffd815aacda6": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "distance1",
                  "type": "timeseries",
                  "label": "Distance1",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "b8640852-c8c8-a867-5d1c-ffd815aacda6"
      },
      "454cc1bd-ebb5-eb14-7ddb-81bd0ea09ae4": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "distance2",
                  "type": "timeseries",
                  "label": "Distance2",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "454cc1bd-ebb5-eb14-7ddb-81bd0ea09ae4"
      },
      "9b8b87ac-a2d2-bf37-8cad-6feb36fab54b": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "9b8b87ac-a2d2-bf37-8cad-6feb36fab54b"
      },
      "8bc693c8-ac4c-b162-0e15-b8e48a4b5c14": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "8bc693c8-ac4c-b162-0e15-b8e48a4b5c14"
      },
      "ea7cad1a-06fc-f057-8357-515c7cca5676": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "ea7cad1a-06fc-f057-8357-515c7cca5676"
      },
      "5d67af83-b7ee-6ea2-f029-3743512d929b": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "5d67af83-b7ee-6ea2-f029-3743512d929b"
      },
      "c59bc4f8-4879-de6b-44ad-6179b8f1774a": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "c59bc4f8-4879-de6b-44ad-6179b8f1774a"
      },
      "d3d9d13c-18f3-7e52-a00c-4f971670b21e": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7771803894132627
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.4408153792361391
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728282094945,
                "endTimeMs": 1728368494945
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true,
          "showTitleIcon": false,
          "titleTooltip": "",
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "d3d9d13c-18f3-7e52-a00c-4f971670b21e"
      },
      "98d52295-8d99-adce-ad75-084a05586192": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "98d52295-8d99-adce-ad75-084a05586192"
      },
      "589b4b49-e5d7-f5aa-0470-31c349b7c73b": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.8039028735565856,
                  "units": "°C",
                  "decimals": 3
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "589b4b49-e5d7-f5aa-0470-31c349b7c73b"
      },
      "bb6ea6ef-d589-3dec-6d3e-41944bef3192": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "bb6ea6ef-d589-3dec-6d3e-41944bef3192"
      },
      "34f3186d-974a-1648-96f1-90e184eb7014": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "humidity",
                  "type": "timeseries",
                  "label": "humidity",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.6087754931868925,
                  "units": "%",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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"
          },
          "title": "Humidity",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "34f3186d-974a-1648-96f1-90e184eb7014"
      },
      "509b0b4d-a748-7f37-509c-811ac3fec93c": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "509b0b4d-a748-7f37-509c-811ac3fec93c"
      },
      "b331bb8e-32c4-8610-9edb-380bff79932a": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "b331bb8e-32c4-8610-9edb-380bff79932a"
      },
      "0dbfd2db-9ede-6ecd-2b0e-7b57c9512d0f": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "0dbfd2db-9ede-6ecd-2b0e-7b57c9512d0f"
      },
      "67aec5da-a5a2-0a5e-9f14-26cfb88546f7": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.8039028735565856,
                  "units": "°C",
                  "decimals": 3
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "67aec5da-a5a2-0a5e-9f14-26cfb88546f7"
      },
      "6412b403-093a-7c45-d8e2-b735d98df856": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "6412b403-093a-7c45-d8e2-b735d98df856"
      },
      "fe33f5d2-fbce-3dca-e6c1-400ac72091ec": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "fe33f5d2-fbce-3dca-e6c1-400ac72091ec"
      },
      "e6aac6d0-f3da-b271-edd0-647017f0bb2c": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "e6aac6d0-f3da-b271-edd0-647017f0bb2c"
      },
      "7d7b5c94-5ac8-7b46-cf6d-463afc9e9b2d": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "humidity",
                  "type": "timeseries",
                  "label": "humidity",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.6087754931868925,
                  "units": "%",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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"
          },
          "title": "Humidity",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "7d7b5c94-5ac8-7b46-cf6d-463afc9e9b2d"
      },
      "caeced61-e410-bf51-be0a-a3a4eebc8b4d": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "caeced61-e410-bf51-be0a-a3a4eebc8b4d"
      },
      "e8ced7c1-a58d-c4c7-53b9-0ef09896c6b9": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.8039028735565856,
                  "units": "°C",
                  "decimals": 3
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "e8ced7c1-a58d-c4c7-53b9-0ef09896c6b9"
      },
      "bbe2cceb-cf1f-12d4-e427-e724a16041fd": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "bbe2cceb-cf1f-12d4-e427-e724a16041fd"
      },
      "6bf454a8-b691-4e6b-fc59-9ee135e140aa": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "6bf454a8-b691-4e6b-fc59-9ee135e140aa"
      },
      "a8f09468-8e78-83e5-b802-b0240c1aee1b": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "a8f09468-8e78-83e5-b802-b0240c1aee1b"
      },
      "9d9314bc-0af9-6e3d-c203-7635281005a3": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "humidity",
                  "type": "timeseries",
                  "label": "humidity",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.6087754931868925,
                  "units": "%",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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"
          },
          "title": "Humidity",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "9d9314bc-0af9-6e3d-c203-7635281005a3"
      },
      "52950102-5761-3ff9-aabb-34b2e9c2d3e5": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "52950102-5761-3ff9-aabb-34b2e9c2d3e5"
      },
      "720f7cc9-d1fd-2c3c-258a-d2c4c6fa13ef": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "720f7cc9-d1fd-2c3c-258a-d2c4c6fa13ef"
      },
      "04de18c3-5af4-f836-3736-a0f178010f45": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "04de18c3-5af4-f836-3736-a0f178010f45"
      },
      "512fd320-61bc-4f7a-f760-d1863f6449fa": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "512fd320-61bc-4f7a-f760-d1863f6449fa"
      },
      "6c02d952-e213-61a5-92c9-c22ed804de08": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "6c02d952-e213-61a5-92c9-c22ed804de08"
      },
      "6a66d5a6-5d40-9057-2a6d-dcec8ee236e5": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "6a66d5a6-5d40-9057-2a6d-dcec8ee236e5"
      },
      "d5954543-fe0f-90bc-35b1-23e93764782a": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.8039028735565856,
                  "units": "°C",
                  "decimals": 3
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "d5954543-fe0f-90bc-35b1-23e93764782a"
      },
      "e3f4c0d4-52f2-07fe-4620-58f6954e81f9": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "humidity",
                  "type": "timeseries",
                  "label": "humidity",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.6087754931868925,
                  "units": "%",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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"
          },
          "title": "Humidity",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "e3f4c0d4-52f2-07fe-4620-58f6954e81f9"
      },
      "e7dd71c0-e653-e444-e7b8-b94c43c2e804": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "PIR",
                  "type": "timeseries",
                  "label": "PIR",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.6087754931868925,
                  "units": "%",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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,
              "valueFormat": null
            },
            "thresholds": [],
            "dataZoom": true,
            "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)",
            "tooltipHideZeroValues": null
          },
          "title": "PTR",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": 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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "e7dd71c0-e653-e444-e7b8-b94c43c2e804"
      },
      "e52e73e5-8759-59a1-2572-ca63a479595e": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "e52e73e5-8759-59a1-2572-ca63a479595e"
      },
      "ebb096d6-a4f3-d425-add6-79e8fa8929ba": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.8039028735565856,
                  "units": "°C",
                  "decimals": 3
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "ebb096d6-a4f3-d425-add6-79e8fa8929ba"
      },
      "2333e241-7f74-59cb-8305-1ad802373433": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "humidity",
                  "type": "timeseries",
                  "label": "humidity",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.6087754931868925,
                  "units": "%",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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"
          },
          "title": "Humidity",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "2333e241-7f74-59cb-8305-1ad802373433"
      },
      "29928b11-55be-c50d-1deb-50fa6e8630f4": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "29928b11-55be-c50d-1deb-50fa6e8630f4"
      },
      "18b0602f-c829-5ca1-15d6-55abefebcb14": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "18b0602f-c829-5ca1-15d6-55abefebcb14"
      },
      "99864b1b-27d7-874c-7342-a7235e06eef7": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "99864b1b-27d7-874c-7342-a7235e06eef7"
      },
      "aff84643-cf5d-6777-775b-574d865a3fc7": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "TempC_SHT",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.8039028735565856,
                  "units": "°C",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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,
              "valueFormat": null
            },
            "thresholds": [],
            "dataZoom": true,
            "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)",
            "tooltipHideZeroValues": null
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "aff84643-cf5d-6777-775b-574d865a3fc7"
      },
      "12d95c6b-89df-84f1-f7a1-2e03deb985b1": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "humidity",
                  "type": "timeseries",
                  "label": "Hum_SHT",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.6087754931868925,
                  "units": "%",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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,
              "valueFormat": null
            },
            "thresholds": [],
            "dataZoom": true,
            "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)",
            "tooltipHideZeroValues": null
          },
          "title": "Humidity",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "12d95c6b-89df-84f1-f7a1-2e03deb985b1"
      },
      "cc036095-74c9-7b96-a86a-0be2be523c15": {
        "typeFullFqn": "system.cards.entities_table",
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1766564444165,
                "endTimeMs": 1766650844165
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": false,
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "name",
            "useRowStyleFunction": false,
            "entitiesTitle": "Entities"
          },
          "title": "Entities table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "BAT",
                  "type": "timeseries",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.11293831698198331
                },
                {
                  "name": "VIBMOD",
                  "type": "timeseries",
                  "label": "VIBMOD",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.2323230401030928,
                  "decimals": 0
                },
                {
                  "name": "Alarm",
                  "type": "timeseries",
                  "label": "Alarm",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5794715549357866,
                  "decimals": 0
                },
                {
                  "name": "TDC",
                  "type": "timeseries",
                  "label": "TDC",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.8350971952762597,
                  "decimals": 0
                },
                {
                  "name": "TempC_SHT",
                  "type": "timeseries",
                  "label": "TempC_SHT",
                  "color": "#607d8b",
                  "settings": {},
                  "_hash": 0.5560218887925253,
                  "decimals": 0
                },
                {
                  "name": "Hum_SHT",
                  "type": "timeseries",
                  "label": "Hum_SHT",
                  "color": "#9c27b0",
                  "settings": {},
                  "_hash": 0.5994495949962034,
                  "decimals": 0
                },
                {
                  "name": "work_min",
                  "type": "timeseries",
                  "label": "work_min",
                  "color": "#8bc34a",
                  "settings": {},
                  "_hash": 0.6163571290513384,
                  "decimals": 0
                },
                {
                  "name": "vib_count",
                  "type": "timeseries",
                  "label": "vib_count",
                  "color": "#3f51b5",
                  "settings": {},
                  "_hash": 0.08549033431810416,
                  "decimals": 0
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "displayTimewindow": false,
          "configMode": "basic",
          "actions": {},
          "showTitleIcon": false,
          "titleIcon": "list",
          "iconColor": null,
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "cc036095-74c9-7b96-a86a-0be2be523c15"
      },
      "77e56042-e749-dc16-7854-db18b2c9afa0": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "77e56042-e749-dc16-7854-db18b2c9afa0"
      },
      "6f2a2218-b161-5272-7d45-6cae206ae581": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.15877881667089944,
                  "units": "°C",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": {
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": true
            },
            "thresholds": [],
            "dataZoom": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "6f2a2218-b161-5272-7d45-6cae206ae581"
      },
      "0e80808d-657d-17fc-1f1a-9199dbbeac33": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "ph",
                  "type": "timeseries",
                  "label": "Ph",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.13314348122016062,
                  "units": "",
                  "decimals": 0,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": {
            "yAxes": {
              "default": {
                "units": null,
                "decimals": 3,
                "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,
                "min": 0,
                "max": 14
              }
            },
            "thresholds": [],
            "dataZoom": true,
            "stack": false,
            "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,
            "legendLabelFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "legendLabelColor": "rgba(0, 0, 0, 0.76)",
            "legendConfig": {
              "direction": "column",
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": false,
              "showTotal": false,
              "showLatest": true
            },
            "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,
            "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": "Ph",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "0e80808d-657d-17fc-1f1a-9199dbbeac33"
      },
      "9d2d5fab-f829-9279-0ace-d34a1875a3a0": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "9d2d5fab-f829-9279-0ace-d34a1875a3a0"
      },
      "a649c430-6fe3-c552-975b-4f477c8afa7b": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "a649c430-6fe3-c552-975b-4f477c8afa7b"
      },
      "5cc31ccb-49b6-b535-0a0f-68bdf9f18ebd": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7771803894132627
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.4408153792361391
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728282094945,
                "endTimeMs": 1728368494945
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true,
          "showTitleIcon": false,
          "titleTooltip": "",
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "5cc31ccb-49b6-b535-0a0f-68bdf9f18ebd"
      },
      "0bb93756-40ff-be56-9e28-a237452b030c": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "0bb93756-40ff-be56-9e28-a237452b030c"
      },
      "1e1fffb2-da80-3757-16b3-390c87e1d9de": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.8039028735565856,
                  "units": "°C",
                  "decimals": 3
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "1e1fffb2-da80-3757-16b3-390c87e1d9de"
      },
      "3a5b6eaa-441c-4081-a591-cc89bc22a1c7": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "3a5b6eaa-441c-4081-a591-cc89bc22a1c7"
      },
      "7fdae257-3e1a-87ef-5e78-0692a0cce2bf": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "7fdae257-3e1a-87ef-5e78-0692a0cce2bf"
      },
      "280831d3-e184-1e6e-6b29-e3dc221a04c6": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "280831d3-e184-1e6e-6b29-e3dc221a04c6"
      },
      "a1dd3677-e7e8-e248-57f6-c6208e3afb86": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "humidity",
                  "type": "timeseries",
                  "label": "humidity",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.6087754931868925,
                  "units": "%",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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"
          },
          "title": "Humidity",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "a1dd3677-e7e8-e248-57f6-c6208e3afb86"
      },
      "3bc339a8-5489-0d7d-6773-4cf0339b9445": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "3bc339a8-5489-0d7d-6773-4cf0339b9445"
      },
      "1dc2ab7e-06e2-3cb0-e469-7b18c7161550": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "distance",
                  "type": "timeseries",
                  "label": "Distance",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "1dc2ab7e-06e2-3cb0-e469-7b18c7161550"
      },
      "5d72aee7-7dd1-6324-7b73-c5c48324d704": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "distance_signal_strength",
                  "type": "timeseries",
                  "label": "Distance_signal_strength",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.00167156006869007,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349735200,
                "endTimeMs": 1728436135200
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "5d72aee7-7dd1-6324-7b73-c5c48324d704"
      },
      "033c46d0-2dc8-4980-9817-c599c5e3d645": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7700114154518893
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.6816469868207562
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728281579428,
                "endTimeMs": 1728367979428
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "gmApiKey": "AIzaSyDoEx2kaGz3PxwbI9T7ccTSg5xjdw8Nw8Q",
            "gmDefaultMapType": "roadmap",
            "mapProvider": "OpenStreetMap.Mapnik",
            "useCustomProvider": false,
            "customProviderTileUrl": "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
            "mapProviderHere": "HERE.normalDay",
            "credentials": {
              "useV3": true,
              "app_id": "AhM6TzD9ThyK78CT3ptx",
              "app_code": "p6NPiITB3Vv0GMUFnkLOOg",
              "apiKey": "kVXykxAfZ6LS4EbCTO02soFVfjA7HoBzNVVH9u7nzoE"
            },
            "mapImageUrl": "tb-image;/api/images/system/here_map_system_widget_map_image.svg",
            "imageEntityAlias": "",
            "imageUrlAttribute": "",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultZoomLevel": null,
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": false,
            "markerImage": "tb-image;/api/images/system/water_metering_user_dashboard_dashboard_widget_new_openstreetmap_marker_image.svg",
            "markerImageSize": 34,
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "polygonLabelFunction": null,
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonTooltipFunction": null,
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonColorFunction": null,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "polygonStrokeColorFunction": null,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "circleLabelFunction": null,
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleTooltipFunction": null,
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleFillColorFunction": null,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "circleStrokeColorFunction": null,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxZoom": null,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false,
            "clusterMarkerFunction": null
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "033c46d0-2dc8-4980-9817-c599c5e3d645"
      },
      "96118403-adc8-bd7f-4d52-9f117b79a56c": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "ds18b20_temperature",
                  "type": "timeseries",
                  "label": "ds18b20_temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.15877881667089944,
                  "units": "°C",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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"
          },
          "title": "Ds18b20_temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "96118403-adc8-bd7f-4d52-9f117b79a56c"
      },
      "f32f60ed-8964-0260-69b2-5a6afc9fa563": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.15877881667089944,
                  "units": "°C",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": {
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": true
            },
            "thresholds": [],
            "dataZoom": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "f32f60ed-8964-0260-69b2-5a6afc9fa563"
      },
      "7248d971-a36b-6839-ded8-c947d9ab18a1": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "7248d971-a36b-6839-ded8-c947d9ab18a1"
      },
      "9ece8417-39ee-86c2-e369-25259efcc4e4": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6716021323544981,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728295646240,
                "endTimeMs": 1728382046240
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "9ece8417-39ee-86c2-e369-25259efcc4e4"
      },
      "4ba6c01f-41e9-874b-1ec3-351bd5629074": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "4ba6c01f-41e9-874b-1ec3-351bd5629074"
      },
      "cd1bbbc2-a496-d1a9-cf3b-653c1f16392e": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "distance",
                  "type": "timeseries",
                  "label": "Distance",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "cd1bbbc2-a496-d1a9-cf3b-653c1f16392e"
      },
      "2780fb7d-fb4f-e469-71cd-b18cf9aa078e": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "distance_signal_strength",
                  "type": "timeseries",
                  "label": "Distance_signal_strength",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.00167156006869007,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349735200,
                "endTimeMs": 1728436135200
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "2780fb7d-fb4f-e469-71cd-b18cf9aa078e"
      },
      "9693b578-8f07-15fd-a0de-f7de3d66cbfe": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "9693b578-8f07-15fd-a0de-f7de3d66cbfe"
      },
      "09e1749e-26d1-52c3-75ec-54e8e9f8a097": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6716021323544981,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728295646240,
                "endTimeMs": 1728382046240
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "09e1749e-26d1-52c3-75ec-54e8e9f8a097"
      },
      "049920b5-d3ff-fe44-305a-b09e4f3ab5e8": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7700114154518893
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.6816469868207562
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728281579428,
                "endTimeMs": 1728367979428
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "gmApiKey": "AIzaSyDoEx2kaGz3PxwbI9T7ccTSg5xjdw8Nw8Q",
            "gmDefaultMapType": "roadmap",
            "mapProvider": "OpenStreetMap.Mapnik",
            "useCustomProvider": false,
            "customProviderTileUrl": "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
            "mapProviderHere": "HERE.normalDay",
            "credentials": {
              "useV3": true,
              "app_id": "AhM6TzD9ThyK78CT3ptx",
              "app_code": "p6NPiITB3Vv0GMUFnkLOOg",
              "apiKey": "kVXykxAfZ6LS4EbCTO02soFVfjA7HoBzNVVH9u7nzoE"
            },
            "mapImageUrl": "tb-image;/api/images/system/here_map_system_widget_map_image.svg",
            "imageEntityAlias": "",
            "imageUrlAttribute": "",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultZoomLevel": null,
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": false,
            "markerImage": "tb-image;/api/images/system/water_metering_user_dashboard_dashboard_widget_new_openstreetmap_marker_image.svg",
            "markerImageSize": 34,
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "polygonLabelFunction": null,
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonTooltipFunction": null,
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonColorFunction": null,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "polygonStrokeColorFunction": null,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "circleLabelFunction": null,
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleTooltipFunction": null,
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleFillColorFunction": null,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "circleStrokeColorFunction": null,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxZoom": null,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false,
            "clusterMarkerFunction": null
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "049920b5-d3ff-fe44-305a-b09e4f3ab5e8"
      },
      "8b494418-cc2e-6bd6-2512-56f9f0904301": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "ds18b20_temperature",
                  "type": "timeseries",
                  "label": "ds18b20_temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.15877881667089944,
                  "units": "°C",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
            "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"
          },
          "title": "Ds18b20_temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "8b494418-cc2e-6bd6-2512-56f9f0904301"
      },
      "4e996b3e-307b-6220-4adf-c8ba1b51466a": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.15877881667089944,
                  "units": "°C",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": {
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": true
            },
            "thresholds": [],
            "dataZoom": true,
            "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"
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "4e996b3e-307b-6220-4adf-c8ba1b51466a"
      },
      "097062b9-2eef-efdc-ccd6-2f77c71b923e": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "097062b9-2eef-efdc-ccd6-2f77c71b923e"
      },
      "9f5315b5-4e8b-b724-7c72-472b314bde55": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "distance",
                  "type": "timeseries",
                  "label": "Distance",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "9f5315b5-4e8b-b724-7c72-472b314bde55"
      },
      "60015671-184f-7b7b-9685-c29ecaf73aa4": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "60015671-184f-7b7b-9685-c29ecaf73aa4"
      },
      "e2efb4c1-cf9d-5f46-f065-e28e2d26c2a3": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "e2efb4c1-cf9d-5f46-f065-e28e2d26c2a3"
      },
      "66e0ca00-a5bc-f893-04d6-e3f57c668265": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "66e0ca00-a5bc-f893-04d6-e3f57c668265"
      },
      "7e2b7c29-5407-5760-09b6-cfd711979a97": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "7e2b7c29-5407-5760-09b6-cfd711979a97"
      },
      "9a664414-9ef0-8eb0-a999-bc6ed0d7f995": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "distance",
                  "type": "timeseries",
                  "label": "Distance",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "9a664414-9ef0-8eb0-a999-bc6ed0d7f995"
      },
      "8674fc17-0243-cf6e-3c1c-05a290132070": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "8674fc17-0243-cf6e-3c1c-05a290132070"
      },
      "b5bbb8e3-4ad5-e7d0-cfcd-a44b4392f88f": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "b5bbb8e3-4ad5-e7d0-cfcd-a44b4392f88f"
      },
      "26c9b82d-7de9-2852-8916-0973e142dfe3": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "26c9b82d-7de9-2852-8916-0973e142dfe3"
      },
      "f00b32a0-76c7-449e-9000-eb3631f3bb2a": {
        "typeFullFqn": "system.cards.entities_table",
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1741517195903,
                "endTimeMs": 1741603595903
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "All widgets",
            "enableSearch": true,
            "enableSelectColumnDisplay": false,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "showCellActionsMenu": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": false,
            "entityNameColumnTitle": "",
            "displayEntityLabel": false,
            "entityLabelColumnTitle": "",
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "name",
            "useRowStyleFunction": false,
            "rowStyleFunction": "var devicetype =entity.Type;;\r\nvar color = '#fff';\r\nvar label;\r\n//var symbol;\r\nif(devicetype=='Water leakage alarm') {\r\n    color = 'orange';\r\n   return label+\"&#127778\"\r\n}\r\n  else{\r\n    color = '#abab00';\r\n   return label+\"&#127770\"\r\n}"
          },
          "title": "Entities table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#4caf50",
                  "settings": {
                    "customTitle": "",
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "cellStyleFunction": "",
                    "useCellContentFunction": true,
                    "useCellContentFunctionOnExport": true,
                    "cellContentFunction": "var devicetype = entity.Type;;\r\nvar color = '#ff0000';\r\nvar icon = ''; // 用于存放带样式的图标\r\n\r\nif (devicetype == 'Doors status alarm') {\r\n    icon = '<span style=\"font-size: 24px; color: red;\">&#128682;</span>'; \r\n} else {\r\n    icon = '<span style=\"font-size: 24px; color: blue;\">&#128167;</span>'; \r\n}\r\nreturn value + \" \" + icon;\r\n",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled",
                    "columnExportOption": "onlyVisible"
                  },
                  "_hash": 0.9871550662328248,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#4caf50",
                  "settings": {
                    "customTitle": "",
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "cellStyleFunction": "",
                    "useCellContentFunction": false,
                    "useCellContentFunctionOnExport": true,
                    "cellContentFunction": "",
                    "defaultColumnVisibility": "hidden",
                    "columnSelectionToDisplay": "enabled",
                    "columnExportOption": "onlyVisible"
                  },
                  "_hash": 0.5832709765970021,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "battery",
                  "color": "#f44336",
                  "settings": {
                    "customTitle": "Battery",
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "cellStyleFunction": "",
                    "useCellContentFunction": true,
                    "useCellContentFunctionOnExport": true,
                    "cellContentFunction": "var battery = value; // 获取传感器上传的电池电压值\r\nconst fullBatteryVoltage = 3.1; // 设定满电电压\r\nconst emptyBatteryVoltage = 2.65; // 设定低电量阈值\r\nlet batteryPercentage = ((battery - emptyBatteryVoltage) / (fullBatteryVoltage - emptyBatteryVoltage)) * 100;\r\n\r\n// 限制范围 0% ~ 100%\r\nbatteryPercentage = Math.max(0, Math.min(100, batteryPercentage));\r\n\r\nlet fontWeight = '400';\r\nlet background = '234, 235, 255, 1';\r\nlet progress = '46, 139, 87, 1'; // 绿色（正常电量）\r\nlet textColor = '';\r\n\r\n// 低电量警告\r\nif (battery <= 2.75) { // 2.75V 以下即为低电量\r\n    background = '209, 39, 48, 0.06'; // 低电量背景（淡红）\r\n    progress = '209, 39, 48, 1'; // 低电量进度条（红色）\r\n    fontWeight = '500';\r\n    textColor = '#D12730';\r\n}\r\n\r\nconst percent = batteryPercentage.toFixed(0) + '%'; \r\nconst valueText = `${battery.toFixed(2)}V (${percent})`; // 显示 \"2.9V (80%)\" 这种格式\r\n\r\nreturn '<div style=\"display: flex; justify-content: space-between; align-items: center; margin-right: 10%; min-width: 90px;\">' + \r\n           '<span style=\"padding: 4px; font-weight: ' + fontWeight +'; color: ' + textColor + ';\">' + valueText + '</span>' + \r\n           '<div style=\"width: 100%; max-width: 100px; height: 16px; background: linear-gradient(to right, rgba(' + progress + ') ' + percent + ', rgba(' + background + ') '+ percent + '); border-radius: 5.21053px;\">' + \r\n           '</div>' + \r\n        '</div>';\r\n",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled",
                    "columnExportOption": "onlyVisible"
                  },
                  "_hash": 0.541103810330559,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "displayTimewindow": false,
          "configMode": "advanced",
          "actions": {
            "headerButton": [
              {
                "name": "Add new device",
                "icon": "add",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "customPretty",
                "customHtml": "<form #addDeviceForm=\"ngForm\" [formGroup]=\"addDeviceFormGroup\"\r\n      (ngSubmit)=\"save()\" style=\"width: 480px;\">\r\n  <mat-toolbar fxLayout=\"row\" color=\"primary\">\r\n    <h2>Add device</h2>\r\n    <span fxFlex></span>\r\n    <button mat-icon-button\r\n            (click)=\"cancel()\"\r\n            type=\"button\">\r\n      <mat-icon class=\"material-icons\">close</mat-icon>\r\n    </button>\r\n    \r\n<!--工具栏-->  <!---->\r\n  </mat-toolbar>\r\n  <mat-progress-bar color=\"warn\" mode=\"indeterminate\" *ngIf=\"isLoading$ | async\"></mat-progress-bar>\r\n  <div style=\"height: 4px;\" *ngIf=\"!(isLoading$ | async)\"></div>  \r\n<div mat-dialog-content>\r\n      \r\n<!--IMEI-->\r\n        <div class=\"mat-padding\" fxLayout=\"column\">\r\n            <mat-form-field class=\"mat-block\">\r\n                <mat-label>Dev_EUI</mat-label>\r\n                <input matInput formControlName=\"deviceName\" required>\r\n            </mat-form-field>\r\n\r\n<!--Label-->\r\n            <mat-form-field fxFlex=\"50\" class=\"mat-block\">\r\n                <mat-label>Sensor Name</mat-label>\r\n                <input matInput formControlName=\"deviceLabel\">\r\n            </mat-form-field>\r\n       \r\n        \r\n<!--Device profile-->\r\n               <mat-form-field fxFlex=\"100\" class=\"mat-block\">\r\n                <mat-label>Device Type</mat-label>\r\n                    <mat-select formControlName=\"deviceType\" required>\r\n               <mat-option *ngFor=\"let type of deviceTypes\" [value]=\"type\">{{ type }}</mat-option>\r\n            </mat-select>\r\n</mat-form-field>\r\n     </div>\r\n</div>                     \r\n\r\n\r\n  <div mat-dialog-actions fxLayout=\"row\">\r\n    <span fxFlex></span>\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            style=\"margin-right: 20px;\"\r\n            type=\"submit\"\r\n            [disabled]=\"(isLoading$ | async) || addDeviceForm.invalid || !addDeviceForm.dirty\">\r\n      Create\r\n    </button>\r\n  </div>\r\n</form>\r\n",
                "customCss": "",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet customDialog = $injector.get(widgetContext.servicesMap.get('customDialog'));\nlet deviceService = $injector.get(widgetContext.servicesMap.get('deviceService'));\nlet attributeService = $injector.get(widgetContext.servicesMap.get('attributeService'));\n\nopenAddDeviceDialog();\n//新增设备\nfunction openAddDeviceDialog() {\n    customDialog.customDialog(htmlTemplate, AddDeviceDialogController).subscribe();\n}\n//对话框\nfunction AddDeviceDialogController(instance) {\n    let vm = instance;\n    vm.deviceTypes = [\"Water leakage alarm\", \"Doors status alarm\"];\n    vm.addDeviceFormGroup = vm.fb.group({\n      deviceName: ['', [vm.validators.required]],\n      deviceType:  ['', [vm.validators.required]],\n      deviceLabel: ['',[vm.validators.required]],\n      attributes: vm.fb.group({\n          latitude: [null],\n          longitude: [null]\n      })      \n    });\n//取消    \n    vm.cancel = function() {\n        vm.dialogRef.close(null);\n    };\n//保存为值\n    vm.save = function() {\n        vm.addDeviceFormGroup.markAsPristine();\n        let device = {\n            name: vm.addDeviceFormGroup.get('deviceName').value,\n            type: vm.addDeviceFormGroup.get('deviceType').value,\n            label: vm.addDeviceFormGroup.get('deviceLabel').value,\n        };\n        deviceService.saveDevice(device).subscribe(\n            function (device) {\n                saveAttributes(device.id).subscribe(\n                    function () {\n                        widgetContext.updateAliases();\n                        vm.dialogRef.close(null);\n                    }\n                );\n            }\n        );\n    };\n    \n    function saveAttributes(entityId) {\n        let attributes = vm.addDeviceFormGroup.get('attributes').value;\n        let attributesArray = [];\n        for (let key in attributes) {\n            attributesArray.push({key: key, value: attributes[key]});\n        }\n        if (attributesArray.length > 0) {\n            return attributeService.saveEntityAttributes(entityId, \"SERVER_SCOPE\", attributesArray);\n        } else {\n            return widgetContext.rxjs.of([]);\n        }\n    }\n}",
                "customResources": [],
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "c8bb4b59-432e-bacc-4f89-d6ed50004186"
              }
            ],
            "actionCellButton": [
              {
                "name": "Edit device",
                "icon": "edit",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "customPretty",
                "customHtml": "<form #editDeviceForm=\"ngForm\" [formGroup]=\"editDeviceFormGroup\"\n      (ngSubmit)=\"save()\" style=\"width: 480px;\">\n  <mat-toolbar fxLayout=\"row\" color=\"primary\">\n    <h2>Edit device</h2>\n    <span fxFlex></span>\n    <button mat-icon-button\n            (click)=\"cancel()\"\n            type=\"button\">\n      <mat-icon class=\"material-icons\">close</mat-icon>\n    </button>\n  </mat-toolbar>\n  <mat-progress-bar color=\"warn\" mode=\"indeterminate\" *ngIf=\"isLoading$ | async\">\n  </mat-progress-bar>\n  <div style=\"height: 4px;\" *ngIf=\"!(isLoading$ | async)\"></div>\n  <div mat-dialog-content>\n      \n<!--IMEI-->\n    <div class=\"mat-padding\" fxLayout=\"column\">\n            <mat-form-field class=\"mat-block\">\n                <mat-label>Dev_EUI</mat-label>\n                <input matInput formControlName=\"deviceName\" required>\n            </mat-form-field>\n<!--Label-->\n                <mat-form-field fxFlex=\"50\" class=\"mat-block\">\n                    <mat-label>Sensor Name</mat-label>\n                    <input matInput formControlName=\"deviceLabel\">\n                </mat-form-field>\n<!--Device profile-->\n                <mat-form-field fxFlex=\"100\" class=\"mat-block\">\n                    <mat-label>Device Type</mat-label>\n                    <mat-select formControlName=\"deviceType\" required>\n                    <mat-option *ngFor=\"let type of deviceTypes\" [value]=\"type\">{{ type }}</mat-option>\n                    </mat-select>\n            </mat-form-field>\n    </div>                     \n</div>\n  <div mat-dialog-actions fxLayout=\"row\">\n    <span fxFlex></span>\n    <button mat-button color=\"primary\"\n            type=\"button\"\n            [disabled]=\"(isLoading$ | async)\"\n            (click)=\"cancel()\" cdkFocusInitial>\n      Cancel\n    </button>\n    <button mat-button mat-raised-button color=\"primary\"\n            style=\"margin-right: 20px;\"\n            type=\"submit\"\n            [disabled]=\"(isLoading$ | async) || editDeviceForm.invalid || !editDeviceForm.dirty\">\n      Update\n    </button>\n  </div>\n</form>\n",
                "customCss": "/*=======================================================================*/\n/*==========  There are two examples: for edit and add entity  ==========*/\n/*=======================================================================*/\n/*========================  Edit entity example  ========================*/\n/*=======================================================================*/\n/*\n.edit-entity-form .boolean-value-input {\n    padding-left: 5px;\n}\n\n.edit-entity-form .boolean-value-input .checkbox-label {\n    color: rgba(0,0,0,0.54);\n    font-size: 12px;\n}\n\n.relations-list .header {\n    padding-right: 5px;\n    padding-bottom: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .header .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n    font-size: 12px;\n    font-weight: 700;\n    color: rgba(0, 0, 0, .54);\n    white-space: nowrap;\n}\n\n.relations-list .mat-form-field-infix {\n    width: auto !important;\n}\n\n.relations-list .body {\n    padding-right: 5px;\n    padding-bottom: 15px;\n    padding-left: 5px;\n}\n\n.relations-list .body .row {\n    padding-top: 5px;\n}\n\n.relations-list .body .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .body .md-button {\n    margin: 0;\n}\n*/\n/*========================================================================*/\n/*=========================  Add entity example  =========================*/\n/*========================================================================*/\n/*\n.add-entity-form .boolean-value-input {\n    padding-left: 5px;\n}\n\n.add-entity-form .boolean-value-input .checkbox-label {\n    color: rgba(0,0,0,0.54);\n    font-size: 12px;\n}\n\n.relations-list .header {\n    padding-right: 5px;\n    padding-bottom: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .header .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n    font-size: 12px;\n    font-weight: 700;\n    color: rgba(0, 0, 0, .54);\n    white-space: nowrap;\n}\n\n.relations-list .mat-form-field-infix {\n    width: auto !important;\n}\n\n.relations-list .body {\n    padding-right: 5px;\n    padding-bottom: 15px;\n    padding-left: 5px;\n}\n\n.relations-list .body .row {\n    padding-top: 5px;\n}\n\n.relations-list .body .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .body .md-button {\n    margin: 0;\n}\n*/\n",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet customDialog = $injector.get(widgetContext.servicesMap\n    .get('customDialog'));\nlet deviceService = $injector.get(widgetContext.servicesMap\n    .get('deviceService'));\nlet attributeService = $injector.get(widgetContext\n    .servicesMap.get('attributeService'));\n\nopenEditDeviceDialog();\n\nfunction openEditDeviceDialog() {\n    customDialog.customDialog(htmlTemplate,\n        EditDeviceDialogController).subscribe();\n}\n\nfunction EditDeviceDialogController(instance) {\n    let vm = instance;\n\n    vm.device = null;\n    vm.attributes = {};\n    vm.deviceTypes = [\"Water leakage alarm\", \"Doors status alarm\"];\n    vm.editDeviceFormGroup = vm.fb.group({\n        deviceName: ['', [vm.validators.required]],\n        deviceType: ['', [vm.validators.required]],\n        deviceLabel: ['', [vm.validators.required]],\n\n        attributes: vm.fb.group({\n            latitude: [null],\n            longitude: [null]\n        })\n    });\n\n    vm.cancel = function() {\n        vm.dialogRef.close(null);\n    };\n\n    vm.save = function() {\n        vm.editDeviceFormGroup.markAsPristine();\n        if (vm.editDeviceFormGroup.get('deviceType')\n            .value !== vm.device.type) {\n            delete vm.device.deviceProfileId;\n        }\n        vm.device.name = vm.editDeviceFormGroup.get(\n                'deviceName').value,\n            vm.device.type = vm.editDeviceFormGroup.get(\n                'deviceType').alue,\n            vm.device.label = vm.editDeviceFormGroup\n            .get('deviceLabel').value\n\n        deviceService.saveDevice(vm.device).subscribe(\n            function() {\n                saveAttributes().subscribe(\n                    function() {\n                        widgetContext\n                            .updateAliases();\n                        vm.dialogRef.close(\n                        null);\n                    }\n                );\n            }\n        );\n    };\n\n    getEntityInfo();\n\n    function getEntityInfo() {\n        deviceService.getDevice(entityId.id).subscribe(\n            function(device) {\n                attributeService.getEntityAttributes(\n                        entityId, 'SERVER_SCOPE',\n                        ['latitude', 'longitude'])\n                    .subscribe(\n                        function(attributes) {\n                            for (let i = 0; i <\n                                attributes.length; i++\n                                ) {\n                                vm.attributes[\n                                        attributes[i]\n                                        .key] =\n                                    attributes[i].value;\n                            }\n                            vm.device = device;\n                            vm.editDeviceFormGroup\n                                .patchValue({\n                                    deviceName: vm\n                                        .device\n                                        .name,\n                                    deviceType: vm\n                                        .device\n                                        .type,\n                                    deviceLabel: vm\n                                        .device\n                                        .label,\n                                    attributes: {\n                                        latitude: vm\n                                            .attributes\n                                            .latitude,\n                                        longitude: vm\n                                            .attributes\n                                            .longitude\n                                    }\n                                }, {\n                                    emitEvent: false\n                                });\n                        }\n                    );\n            }\n        );\n    }\n\n    function saveAttributes() {\n        let attributes = vm.editDeviceFormGroup.get(\n            'attributes').value;\n        let attributesArray = [];\n        for (let key in attributes) {\n            attributesArray.push({\n                key: key,\n                value: attributes[key]\n            });\n        }\n        if (attributesArray.length > 0) {\n            return attributeService.saveEntityAttributes(\n                entityId, 'SERVER_SCOPE',\n                attributesArray);\n        } else {\n            return widgetContext.rxjs.of([]);\n        }\n    }\n}",
                "customResources": [],
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "c5e94b42-8206-bc70-2aaa-ed2f2c42333d"
              },
              {
                "name": "Delete device",
                "icon": "delete",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet dialogs = $injector.get(widgetContext.servicesMap.get('dialogs'));\nlet deviceService = $injector.get(widgetContext.servicesMap.get('deviceService'));\n\nopenDeleteDeviceDialog();\n\nfunction openDeleteDeviceDialog() {\n    let title = \"Are you sure you want to delete the device \" + entityName +  \"?\";\n    let content = \"Be careful, after the confirmation, the device and all related data will become unrecoverable!\";\n    dialogs.confirm(title, content, 'Cancel', 'Delete').subscribe(\n        function (result) {\n            if (result) {\n                deleteDevice();\n            }\n        }\n    );\n}\n\nfunction deleteDevice() {\n    deviceService.deleteDevice(entityId.id).subscribe(\n        function () {\n            widgetContext.updateAliases();\n        }\n    );\n}\n",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "267e03a1-53c5-91b5-ae15-a7ebce0cd1b1"
              },
              {
                "name": "Set door opened timeout alarm",
                "icon": "notifications",
                "useShowWidgetActionFunction": true,
                "showWidgetActionFunction": "return data.Type === 'Doors status alarm';\r\n",
                "type": "customPretty",
                "customHtml": "<form #editDeviceForm=\"ngForm\" [formGroup]=\"editDeviceFormGroup\" class=\"edit-device-form\" (ngSubmit)=\"save()\">\n    <mat-toolbar class=\"edit-device-form-toolbar\" fxLayout=\"row\">\n        <h2>Thresholds Configuration</h2>\n        <span fxFlex></span>\n        <button mat-icon-button (click)=\"cancel()\" type=\"button\">\n            <mat-icon class=\"material-icons\">close</mat-icon>\n        </button>\n    </mat-toolbar>\n    <mat-progress-bar color=\"warn\" mode=\"indeterminate\" *ngIf=\"isLoading$ | async\"></mat-progress-bar>\n    <div style=\"height: 4px;\" *ngIf=\"!(isLoading$ | async)\"></div>\n    <div mat-dialog-content fxLayout=\"column\">\n        <fieldset [disabled]=\"(isLoading$ | async) || loading\">\n            <div fxLayout=\"row\" fxLayoutGap=\"8px\" fxLayout.xs=\"column\" fxLayoutGap.xs=\"0\">\n            </div>\n            <div fxLayout=\"row\" fxLayoutGap=\"8px\" fxLayout.xs=\"column\" fxLayoutGap.xs=\"0\">\n            </div>\n            <mat-form-field fxFlex class=\"mat-block\">\n                <mat-label>Open_timeout_limit(s)</mat-label>\n                <input matInput type=\"number\" step=\"1\" formControlName=\"Open_timeout_limit\">\n                <mat-error *ngIf=\"editDeviceFormGroup.get('Open_timeout_limit').hasError('pattern')\">\n                    Invalid value\n                </mat-error>\n            </mat-form-field>\n        </fieldset>\n    </div>\n    <div mat-dialog-actions fxLayout=\"row\" fxLayoutAlign=\"end center\" class=\"edit-device-form-actions\">\n        <button mat-button color=\"primary\"\n                type=\"button\"\n                (click)=\"cancel()\" cdkFocusInitial>\n            Cancel\n        </button>\n        <button mat-button color=\"primary\"\n                type=\"submit\"\n                [disabled]=\"(isLoading$ | async) || loading || editDeviceForm.invalid || !editDeviceForm.dirty\">\n            Save\n        </button>\n    </div>\n</form>",
                "customCss": "/*=======================================================================*/\n/*==========  There are two examples: for edit and add entity  ==========*/\n/*=======================================================================*/\n/*========================  Edit entity example  ========================*/\n/*=======================================================================*/\n/*\n.edit-entity-form .boolean-value-input {\n    padding-left: 5px;\n}\n\n.edit-entity-form .boolean-value-input .checkbox-label {\n    color: rgba(0,0,0,0.54);\n    font-size: 12px;\n}\n\n.relations-list .header {\n    padding-right: 5px;\n    padding-bottom: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .header .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n    font-size: 12px;\n    font-weight: 700;\n    color: rgba(0, 0, 0, .54);\n    white-space: nowrap;\n}\n\n.relations-list .mat-form-field-infix {\n    width: auto !important;\n}\n\n.relations-list .body {\n    padding-right: 5px;\n    padding-bottom: 15px;\n    padding-left: 5px;\n}\n\n.relations-list .body .row {\n    padding-top: 5px;\n}\n\n.relations-list .body .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .body .md-button {\n    margin: 0;\n}\n*/\n/*========================================================================*/\n/*=========================  Add entity example  =========================*/\n/*========================================================================*/\n/*\n.add-entity-form .boolean-value-input {\n    padding-left: 5px;\n}\n\n.add-entity-form .boolean-value-input .checkbox-label {\n    color: rgba(0,0,0,0.54);\n    font-size: 12px;\n}\n\n.relations-list .header {\n    padding-right: 5px;\n    padding-bottom: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .header .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n    font-size: 12px;\n    font-weight: 700;\n    color: rgba(0, 0, 0, .54);\n    white-space: nowrap;\n}\n\n.relations-list .mat-form-field-infix {\n    width: auto !important;\n}\n\n.relations-list .body {\n    padding-right: 5px;\n    padding-bottom: 15px;\n    padding-left: 5px;\n}\n\n.relations-list .body .row {\n    padding-top: 5px;\n}\n\n.relations-list .body .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .body .md-button {\n    margin: 0;\n}\n*/\n",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet customDialog = $injector.get(widgetContext.servicesMap.get('customDialog')),\n    attributeService = $injector.get(widgetContext.servicesMap.get('attributeService'));\n\nopenEditDeviceDialog();\n\nfunction openEditDeviceDialog() {\n    customDialog.customDialog(htmlTemplate, EditDeviceDialogController).subscribe();\n}\n\nfunction EditDeviceDialogController(instance) {\n    let vm = instance;\n\n    vm.attributes = {};\n    let attributesKeys = ['Open_timeout_limit'];\n\n    vm.editDeviceFormGroup = vm.fb.group({\n        Open_timeout_limit: [null, [vm.validators.pattern(/^-?[0-9]+$/)]]\n    });\n\n    getEntityInfo(attributesKeys);\n\n    vm.cancel = function() {\n        vm.dialogRef.close(null);\n    };\n\n    vm.save = () => {\n        vm.loading = true;\n        vm.editDeviceFormGroup.markAsPristine();\n        saveAttributes(entityId).subscribe(\n            () => {\n                vm.loading = false;\n                vm.dialogRef.close(null);\n            },\n            () => {\n                vm.loading = false;\n            }\n        );\n    };\n\n    function getEntityInfo(attributesKeys) {\n        vm.loading = true;\n        attributeService.getEntityAttributes(entityId, 'SERVER_SCOPE', attributesKeys).subscribe(\n            (data) => {\n                if (data.length) {\n                    getEntityAttributes(data);\n                    vm.editDeviceFormGroup.patchValue(vm.attributes, {emitEvent: false});\n                }\n                vm.loading = false;\n            }\n        );\n    }\n\n    function getEntityAttributes(attributes) {\n        for (let i = 0; i < attributes.length; i++) {\n            vm.attributes[attributes[i].key] = attributes[i].value;\n        }\n    }\n\n    function saveAttributes(entityId) {\n        let attributes = vm.editDeviceFormGroup.value;\n        let attributesArray = [];\n        for (let key in attributes) {\n            if (attributes[key] !== vm.attributes[key]) {\n                attributesArray.push({key: key, value: attributes[key]});\n            }\n        }\n        if (attributesArray.length > 0) {\n            return attributeService.saveEntityAttributes(entityId, \"SERVER_SCOPE\", attributesArray);\n        }\n        return widgetContext.rxjs.of([]);\n    }\n}",
                "customResources": [],
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "31f23ef5-6684-420b-8e37-fb8b08ca4532"
              },
              {
                "name": "Email",
                "icon": "email",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "openDashboardState",
                "targetDashboardStateId": "email",
                "setEntityId": true,
                "stateEntityParamName": null,
                "openRightLayout": false,
                "dialogTitle": "",
                "dialogHideDashboardToolbar": true,
                "dialogWidth": null,
                "dialogHeight": null,
                "openInSeparateDialog": true,
                "openInPopover": false,
                "id": "8f3c11c1-bd83-6d9d-22ff-66cf0fa24586"
              }
            ]
          },
          "showTitleIcon": false,
          "titleIcon": "list",
          "iconColor": null,
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "f00b32a0-76c7-449e-9000-eb3631f3bb2a"
      },
      "effd84e0-3108-1839-6923-f04af15ec837": {
        "typeFullFqn": "system.alarm_widgets.alarms_table",
        "type": "alarm",
        "sizeX": 10.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "realtime": {
              "interval": 1000,
              "timewindowMs": 86400000
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgb(0, 0, 0)",
          "padding": "4px",
          "settings": {
            "alarmsTitle": "All opened door",
            "enableSelection": true,
            "enableSearch": true,
            "enableSelectColumnDisplay": false,
            "enableFilter": false,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "showCellActionsMenu": false,
            "reserveSpaceForHiddenAction": "true",
            "displayDetails": true,
            "allowAcknowledgment": false,
            "allowClear": false,
            "allowAssign": false,
            "displayActivity": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "-createdTime",
            "useRowStyleFunction": false,
            "rowStyleFunction": ""
          },
          "title": "Alarms table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "alarmSource": {
            "type": "entity",
            "name": "",
            "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
            "dataKeys": [
              {
                "name": "label",
                "type": "entityField",
                "label": "Name",
                "color": "#2196f3",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": true,
                  "useCellContentFunctionOnExport": true,
                  "cellContentFunction": "var devicetype = alarm.Type;\r\nvar icon = ''; // 用于存放带样式的图标\r\nvar backgroundColor = '#FF8C00';\r\nvar textColor = '#FFFFFF'; \r\nvar fontSize = '25px'; \r\nif (devicetype == 'Doors status alarm') {\r\n    icon = '<span style=\"font-size: ' + fontSize +\r\n        '; \">&#128682;</span>'; // 💧 水滴\r\n} else {\r\n    icon = '<span style=\"font-size: ' + fontSize +\r\n        ';\">&#128167;</span>'; // 🚪 门\r\n}\r\n\r\nreturn '<div style=\"border-radius: 10px; padding: 5px; ' +\r\n    'background-color: ' + backgroundColor + '; ' //背景色\r\n    +\r\n    'color: ' + textColor + '; ' // 设置文字颜色为白色\r\n    +\r\n    'font-size: ' + fontSize + '; ' // 设置字体大小\r\n    +\r\n    'font-weight: bold; text-align: center;\">' + value +\r\n    \"\" + icon +\r\n    '</div>';",
                  "defaultColumnVisibility": "visible",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.07600098333238492,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              },
              {
                "name": "type",
                "type": "entityField",
                "label": "Type",
                "color": "#4caf50",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": false,
                  "useCellContentFunctionOnExport": true,
                  "cellContentFunction": "",
                  "defaultColumnVisibility": "hidden",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.7294462785065285,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              }
            ],
            "alarmFilterConfig": {
              "statusList": [
                "ACTIVE"
              ]
            }
          },
          "alarmsPollingInterval": 5,
          "showTitleIcon": false,
          "titleIcon": "meeting_room",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "30px",
          "titleTooltip": "",
          "widgetStyle": {},
          "displayTimewindow": true,
          "actions": {},
          "configMode": "advanced",
          "alarmFilterConfig": {
            "statusList": [
              "ACTIVE"
            ],
            "severityList": [
              "MAJOR"
            ],
            "typeList": [
              "Opening"
            ],
            "searchPropagatedAlarms": false,
            "assignedToCurrentUser": false,
            "assigneeId": null
          },
          "datasources": [],
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "effd84e0-3108-1839-6923-f04af15ec837"
      },
      "cff8d865-3c7d-8cf1-5e8d-32b99cf7ec9e": {
        "typeFullFqn": "system.alarm_widgets.alarms_table",
        "type": "alarm",
        "sizeX": 10.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "realtime": {
              "interval": 1000,
              "timewindowMs": 86400000
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgb(0, 0, 0)",
          "padding": "4px",
          "settings": {
            "alarmsTitle": "Properly",
            "enableSelection": true,
            "enableSearch": true,
            "enableSelectColumnDisplay": false,
            "enableFilter": false,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "showCellActionsMenu": false,
            "reserveSpaceForHiddenAction": "true",
            "displayDetails": true,
            "allowAcknowledgment": false,
            "allowClear": false,
            "allowAssign": false,
            "displayActivity": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "-createdTime",
            "useRowStyleFunction": false,
            "rowStyleFunction": ""
          },
          "title": "Alarms table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "alarmSource": {
            "type": "entity",
            "name": "",
            "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
            "dataKeys": [
              {
                "name": "label",
                "type": "entityField",
                "label": "Name",
                "color": "#2196f3",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": true,
                  "useCellContentFunctionOnExport": true,
                  "cellContentFunction": "var devicetype = alarm.Type;\r\nvar icon = ''; // 用于存放带样式的图标\r\nvar backgroundColor = '#2E8B57';\r\nvar textColor = '#FFFFFF'; \r\nvar fontSize = '25px'; \r\nif (devicetype == 'Doors status alarm') {\r\n    icon = '<span style=\"font-size: ' + fontSize +\r\n        '; \">&#128682;</span>'; // 💧 水滴\r\n} else {\r\n    icon = '<span style=\"font-size: ' + fontSize +\r\n        ';\">&#128167;</span>'; // 🚪 门\r\n}\r\n\r\nreturn '<div style=\"border-radius: 10px; padding: 5px; ' +\r\n    'background-color: ' + backgroundColor + '; ' //背景色\r\n    +\r\n    'color: ' + textColor + '; ' // 设置文字颜色为白色\r\n    +\r\n    'font-size: ' + fontSize + '; ' // 设置字体大小\r\n    +\r\n    'font-weight: bold; text-align: center;\">' + value +\r\n    \"\" + icon +\r\n    '</div>';",
                  "defaultColumnVisibility": "visible",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.2552846806165927,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              },
              {
                "name": "type",
                "type": "entityField",
                "label": "Type",
                "color": "#4caf50",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": false,
                  "useCellContentFunctionOnExport": true,
                  "cellContentFunction": "",
                  "defaultColumnVisibility": "hidden",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.5761464286817441,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              }
            ],
            "alarmFilterConfig": {
              "statusList": [
                "ACTIVE"
              ]
            }
          },
          "alarmsPollingInterval": 5,
          "showTitleIcon": false,
          "titleIcon": "warning",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "widgetStyle": {},
          "displayTimewindow": true,
          "actions": {},
          "configMode": "advanced",
          "alarmFilterConfig": {
            "statusList": [
              "ACTIVE"
            ],
            "severityList": [
              "INDETERMINATE"
            ],
            "typeList": [
              "Closed",
              "No leaks"
            ],
            "searchPropagatedAlarms": false,
            "assignedToCurrentUser": false,
            "assigneeId": null
          },
          "datasources": [],
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "cff8d865-3c7d-8cf1-5e8d-32b99cf7ec9e"
      },
      "60e131a1-5bef-fc00-e27c-47ec38970dd5": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "60e131a1-5bef-fc00-e27c-47ec38970dd5"
      },
      "aced7894-d557-2935-48d6-ffee191839e6": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "aced7894-d557-2935-48d6-ffee191839e6"
      },
      "83b6c013-6c4d-5650-be66-8e62f3d587cc": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "83b6c013-6c4d-5650-be66-8e62f3d587cc"
      },
      "64130b49-b096-a8af-57bf-9791ceb0c4de": {
        "typeFullFqn": "system.cards.entities_table",
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1741517195903,
                "endTimeMs": 1741603595903
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "All widgets",
            "enableSearch": true,
            "enableSelectColumnDisplay": false,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "showCellActionsMenu": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": false,
            "entityNameColumnTitle": "",
            "displayEntityLabel": false,
            "entityLabelColumnTitle": "",
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "name",
            "useRowStyleFunction": false,
            "rowStyleFunction": "var devicetype =entity.Type;;\r\nvar color = '#fff';\r\nvar label;\r\n//var symbol;\r\nif(devicetype=='Water leakage alarm') {\r\n    color = 'orange';\r\n   return label+\"&#127778\"\r\n}\r\n  else{\r\n    color = '#abab00';\r\n   return label+\"&#127770\"\r\n}"
          },
          "title": "Entities table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#4caf50",
                  "settings": {
                    "customTitle": "",
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "cellStyleFunction": "",
                    "useCellContentFunction": true,
                    "useCellContentFunctionOnExport": true,
                    "cellContentFunction": "var devicetype = entity.Type;;\r\nvar color = '#ff0000';\r\nvar icon = ''; // 用于存放带样式的图标\r\n\r\nif (devicetype == 'Doors status alarm') {\r\n    icon = '<span style=\"font-size: 24px; color: red;\">&#128682;</span>'; \r\n} else {\r\n    icon = '<span style=\"font-size: 24px; color: blue;\">&#128167;</span>'; \r\n}\r\nreturn value + \" \" + icon;\r\n",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled",
                    "columnExportOption": "onlyVisible"
                  },
                  "_hash": 0.9871550662328248,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#4caf50",
                  "settings": {
                    "customTitle": "",
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "cellStyleFunction": "",
                    "useCellContentFunction": false,
                    "useCellContentFunctionOnExport": true,
                    "cellContentFunction": "",
                    "defaultColumnVisibility": "hidden",
                    "columnSelectionToDisplay": "enabled",
                    "columnExportOption": "onlyVisible"
                  },
                  "_hash": 0.5832709765970021,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "battery",
                  "color": "#f44336",
                  "settings": {
                    "customTitle": "Battery",
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "cellStyleFunction": "",
                    "useCellContentFunction": true,
                    "useCellContentFunctionOnExport": true,
                    "cellContentFunction": "var battery = value; // 获取传感器上传的电池电压值\r\nconst fullBatteryVoltage = 3.1; // 设定满电电压\r\nconst emptyBatteryVoltage = 2.65; // 设定低电量阈值\r\nlet batteryPercentage = ((battery - emptyBatteryVoltage) / (fullBatteryVoltage - emptyBatteryVoltage)) * 100;\r\n\r\n// 限制范围 0% ~ 100%\r\nbatteryPercentage = Math.max(0, Math.min(100, batteryPercentage));\r\n\r\nlet fontWeight = '400';\r\nlet background = '234, 235, 255, 1';\r\nlet progress = '46, 139, 87, 1'; // 绿色（正常电量）\r\nlet textColor = '';\r\n\r\n// 低电量警告\r\nif (battery <= 2.75) { // 2.75V 以下即为低电量\r\n    background = '209, 39, 48, 0.06'; // 低电量背景（淡红）\r\n    progress = '209, 39, 48, 1'; // 低电量进度条（红色）\r\n    fontWeight = '500';\r\n    textColor = '#D12730';\r\n}\r\n\r\nconst percent = batteryPercentage.toFixed(0) + '%'; \r\nconst valueText = `${battery.toFixed(2)}V (${percent})`; // 显示 \"2.9V (80%)\" 这种格式\r\n\r\nreturn '<div style=\"display: flex; justify-content: space-between; align-items: center; margin-right: 10%; min-width: 90px;\">' + \r\n           '<span style=\"padding: 4px; font-weight: ' + fontWeight +'; color: ' + textColor + ';\">' + valueText + '</span>' + \r\n           '<div style=\"width: 100%; max-width: 100px; height: 16px; background: linear-gradient(to right, rgba(' + progress + ') ' + percent + ', rgba(' + background + ') '+ percent + '); border-radius: 5.21053px;\">' + \r\n           '</div>' + \r\n        '</div>';\r\n",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled",
                    "columnExportOption": "onlyVisible"
                  },
                  "_hash": 0.541103810330559,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "displayTimewindow": false,
          "configMode": "advanced",
          "actions": {
            "headerButton": [
              {
                "name": "Add new device",
                "icon": "add",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "customPretty",
                "customHtml": "<form #addDeviceForm=\"ngForm\" [formGroup]=\"addDeviceFormGroup\"\r\n      (ngSubmit)=\"save()\" style=\"width: 480px;\">\r\n  <mat-toolbar fxLayout=\"row\" color=\"primary\">\r\n    <h2>Add device</h2>\r\n    <span fxFlex></span>\r\n    <button mat-icon-button\r\n            (click)=\"cancel()\"\r\n            type=\"button\">\r\n      <mat-icon class=\"material-icons\">close</mat-icon>\r\n    </button>\r\n    \r\n<!--工具栏-->  <!---->\r\n  </mat-toolbar>\r\n  <mat-progress-bar color=\"warn\" mode=\"indeterminate\" *ngIf=\"isLoading$ | async\"></mat-progress-bar>\r\n  <div style=\"height: 4px;\" *ngIf=\"!(isLoading$ | async)\"></div>  \r\n<div mat-dialog-content>\r\n      \r\n<!--IMEI-->\r\n        <div class=\"mat-padding\" fxLayout=\"column\">\r\n            <mat-form-field class=\"mat-block\">\r\n                <mat-label>Dev_EUI</mat-label>\r\n                <input matInput formControlName=\"deviceName\" required>\r\n            </mat-form-field>\r\n\r\n<!--Label-->\r\n            <mat-form-field fxFlex=\"50\" class=\"mat-block\">\r\n                <mat-label>Sensor Name</mat-label>\r\n                <input matInput formControlName=\"deviceLabel\">\r\n            </mat-form-field>\r\n       \r\n        \r\n<!--Device profile-->\r\n               <mat-form-field fxFlex=\"100\" class=\"mat-block\">\r\n                <mat-label>Device Type</mat-label>\r\n                    <mat-select formControlName=\"deviceType\" required>\r\n               <mat-option *ngFor=\"let type of deviceTypes\" [value]=\"type\">{{ type }}</mat-option>\r\n            </mat-select>\r\n</mat-form-field>\r\n     </div>\r\n</div>                     \r\n\r\n\r\n  <div mat-dialog-actions fxLayout=\"row\">\r\n    <span fxFlex></span>\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            style=\"margin-right: 20px;\"\r\n            type=\"submit\"\r\n            [disabled]=\"(isLoading$ | async) || addDeviceForm.invalid || !addDeviceForm.dirty\">\r\n      Create\r\n    </button>\r\n  </div>\r\n</form>\r\n",
                "customCss": "",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet customDialog = $injector.get(widgetContext.servicesMap.get('customDialog'));\nlet deviceService = $injector.get(widgetContext.servicesMap.get('deviceService'));\nlet attributeService = $injector.get(widgetContext.servicesMap.get('attributeService'));\n\nopenAddDeviceDialog();\n//新增设备\nfunction openAddDeviceDialog() {\n    customDialog.customDialog(htmlTemplate, AddDeviceDialogController).subscribe();\n}\n//对话框\nfunction AddDeviceDialogController(instance) {\n    let vm = instance;\n    vm.deviceTypes = [\"Water leakage alarm\", \"Doors status alarm\"];\n    vm.addDeviceFormGroup = vm.fb.group({\n      deviceName: ['', [vm.validators.required]],\n      deviceType:  ['', [vm.validators.required]],\n      deviceLabel: ['',[vm.validators.required]],\n      attributes: vm.fb.group({\n          latitude: [null],\n          longitude: [null]\n      })      \n    });\n//取消    \n    vm.cancel = function() {\n        vm.dialogRef.close(null);\n    };\n//保存为值\n    vm.save = function() {\n        vm.addDeviceFormGroup.markAsPristine();\n        let device = {\n            name: vm.addDeviceFormGroup.get('deviceName').value,\n            type: vm.addDeviceFormGroup.get('deviceType').value,\n            label: vm.addDeviceFormGroup.get('deviceLabel').value,\n        };\n        deviceService.saveDevice(device).subscribe(\n            function (device) {\n                saveAttributes(device.id).subscribe(\n                    function () {\n                        widgetContext.updateAliases();\n                        vm.dialogRef.close(null);\n                    }\n                );\n            }\n        );\n    };\n    \n    function saveAttributes(entityId) {\n        let attributes = vm.addDeviceFormGroup.get('attributes').value;\n        let attributesArray = [];\n        for (let key in attributes) {\n            attributesArray.push({key: key, value: attributes[key]});\n        }\n        if (attributesArray.length > 0) {\n            return attributeService.saveEntityAttributes(entityId, \"SERVER_SCOPE\", attributesArray);\n        } else {\n            return widgetContext.rxjs.of([]);\n        }\n    }\n}",
                "customResources": [],
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "c8bb4b59-432e-bacc-4f89-d6ed50004186"
              }
            ],
            "actionCellButton": [
              {
                "name": "Edit device",
                "icon": "edit",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "customPretty",
                "customHtml": "<form #editDeviceForm=\"ngForm\" [formGroup]=\"editDeviceFormGroup\"\n      (ngSubmit)=\"save()\" style=\"width: 480px;\">\n  <mat-toolbar fxLayout=\"row\" color=\"primary\">\n    <h2>Edit device</h2>\n    <span fxFlex></span>\n    <button mat-icon-button\n            (click)=\"cancel()\"\n            type=\"button\">\n      <mat-icon class=\"material-icons\">close</mat-icon>\n    </button>\n  </mat-toolbar>\n  <mat-progress-bar color=\"warn\" mode=\"indeterminate\" *ngIf=\"isLoading$ | async\">\n  </mat-progress-bar>\n  <div style=\"height: 4px;\" *ngIf=\"!(isLoading$ | async)\"></div>\n  <div mat-dialog-content>\n      \n<!--IMEI-->\n    <div class=\"mat-padding\" fxLayout=\"column\">\n            <mat-form-field class=\"mat-block\">\n                <mat-label>Dev_EUI</mat-label>\n                <input matInput formControlName=\"deviceName\" required>\n            </mat-form-field>\n<!--Label-->\n                <mat-form-field fxFlex=\"50\" class=\"mat-block\">\n                    <mat-label>Sensor Name</mat-label>\n                    <input matInput formControlName=\"deviceLabel\">\n                </mat-form-field>\n<!--Device profile-->\n                <mat-form-field fxFlex=\"100\" class=\"mat-block\">\n                    <mat-label>Device Type</mat-label>\n                    <mat-select formControlName=\"deviceType\" required>\n                    <mat-option *ngFor=\"let type of deviceTypes\" [value]=\"type\">{{ type }}</mat-option>\n                    </mat-select>\n            </mat-form-field>\n    </div>                     \n</div>\n  <div mat-dialog-actions fxLayout=\"row\">\n    <span fxFlex></span>\n    <button mat-button color=\"primary\"\n            type=\"button\"\n            [disabled]=\"(isLoading$ | async)\"\n            (click)=\"cancel()\" cdkFocusInitial>\n      Cancel\n    </button>\n    <button mat-button mat-raised-button color=\"primary\"\n            style=\"margin-right: 20px;\"\n            type=\"submit\"\n            [disabled]=\"(isLoading$ | async) || editDeviceForm.invalid || !editDeviceForm.dirty\">\n      Update\n    </button>\n  </div>\n</form>\n",
                "customCss": "/*=======================================================================*/\n/*==========  There are two examples: for edit and add entity  ==========*/\n/*=======================================================================*/\n/*========================  Edit entity example  ========================*/\n/*=======================================================================*/\n/*\n.edit-entity-form .boolean-value-input {\n    padding-left: 5px;\n}\n\n.edit-entity-form .boolean-value-input .checkbox-label {\n    color: rgba(0,0,0,0.54);\n    font-size: 12px;\n}\n\n.relations-list .header {\n    padding-right: 5px;\n    padding-bottom: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .header .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n    font-size: 12px;\n    font-weight: 700;\n    color: rgba(0, 0, 0, .54);\n    white-space: nowrap;\n}\n\n.relations-list .mat-form-field-infix {\n    width: auto !important;\n}\n\n.relations-list .body {\n    padding-right: 5px;\n    padding-bottom: 15px;\n    padding-left: 5px;\n}\n\n.relations-list .body .row {\n    padding-top: 5px;\n}\n\n.relations-list .body .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .body .md-button {\n    margin: 0;\n}\n*/\n/*========================================================================*/\n/*=========================  Add entity example  =========================*/\n/*========================================================================*/\n/*\n.add-entity-form .boolean-value-input {\n    padding-left: 5px;\n}\n\n.add-entity-form .boolean-value-input .checkbox-label {\n    color: rgba(0,0,0,0.54);\n    font-size: 12px;\n}\n\n.relations-list .header {\n    padding-right: 5px;\n    padding-bottom: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .header .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n    font-size: 12px;\n    font-weight: 700;\n    color: rgba(0, 0, 0, .54);\n    white-space: nowrap;\n}\n\n.relations-list .mat-form-field-infix {\n    width: auto !important;\n}\n\n.relations-list .body {\n    padding-right: 5px;\n    padding-bottom: 15px;\n    padding-left: 5px;\n}\n\n.relations-list .body .row {\n    padding-top: 5px;\n}\n\n.relations-list .body .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .body .md-button {\n    margin: 0;\n}\n*/\n",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet customDialog = $injector.get(widgetContext.servicesMap\n    .get('customDialog'));\nlet deviceService = $injector.get(widgetContext.servicesMap\n    .get('deviceService'));\nlet attributeService = $injector.get(widgetContext\n    .servicesMap.get('attributeService'));\n\nopenEditDeviceDialog();\n\nfunction openEditDeviceDialog() {\n    customDialog.customDialog(htmlTemplate,\n        EditDeviceDialogController).subscribe();\n}\n\nfunction EditDeviceDialogController(instance) {\n    let vm = instance;\n\n    vm.device = null;\n    vm.attributes = {};\n    vm.deviceTypes = [\"Water leakage alarm\", \"Doors status alarm\"];\n    vm.editDeviceFormGroup = vm.fb.group({\n        deviceName: ['', [vm.validators.required]],\n        deviceType: ['', [vm.validators.required]],\n        deviceLabel: ['', [vm.validators.required]],\n\n        attributes: vm.fb.group({\n            latitude: [null],\n            longitude: [null]\n        })\n    });\n\n    vm.cancel = function() {\n        vm.dialogRef.close(null);\n    };\n\n    vm.save = function() {\n        vm.editDeviceFormGroup.markAsPristine();\n        if (vm.editDeviceFormGroup.get('deviceType')\n            .value !== vm.device.type) {\n            delete vm.device.deviceProfileId;\n        }\n        vm.device.name = vm.editDeviceFormGroup.get(\n                'deviceName').value,\n            vm.device.type = vm.editDeviceFormGroup.get(\n                'deviceType').alue,\n            vm.device.label = vm.editDeviceFormGroup\n            .get('deviceLabel').value\n\n        deviceService.saveDevice(vm.device).subscribe(\n            function() {\n                saveAttributes().subscribe(\n                    function() {\n                        widgetContext\n                            .updateAliases();\n                        vm.dialogRef.close(\n                        null);\n                    }\n                );\n            }\n        );\n    };\n\n    getEntityInfo();\n\n    function getEntityInfo() {\n        deviceService.getDevice(entityId.id).subscribe(\n            function(device) {\n                attributeService.getEntityAttributes(\n                        entityId, 'SERVER_SCOPE',\n                        ['latitude', 'longitude'])\n                    .subscribe(\n                        function(attributes) {\n                            for (let i = 0; i <\n                                attributes.length; i++\n                                ) {\n                                vm.attributes[\n                                        attributes[i]\n                                        .key] =\n                                    attributes[i].value;\n                            }\n                            vm.device = device;\n                            vm.editDeviceFormGroup\n                                .patchValue({\n                                    deviceName: vm\n                                        .device\n                                        .name,\n                                    deviceType: vm\n                                        .device\n                                        .type,\n                                    deviceLabel: vm\n                                        .device\n                                        .label,\n                                    attributes: {\n                                        latitude: vm\n                                            .attributes\n                                            .latitude,\n                                        longitude: vm\n                                            .attributes\n                                            .longitude\n                                    }\n                                }, {\n                                    emitEvent: false\n                                });\n                        }\n                    );\n            }\n        );\n    }\n\n    function saveAttributes() {\n        let attributes = vm.editDeviceFormGroup.get(\n            'attributes').value;\n        let attributesArray = [];\n        for (let key in attributes) {\n            attributesArray.push({\n                key: key,\n                value: attributes[key]\n            });\n        }\n        if (attributesArray.length > 0) {\n            return attributeService.saveEntityAttributes(\n                entityId, 'SERVER_SCOPE',\n                attributesArray);\n        } else {\n            return widgetContext.rxjs.of([]);\n        }\n    }\n}",
                "customResources": [],
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "c5e94b42-8206-bc70-2aaa-ed2f2c42333d"
              },
              {
                "name": "Delete device",
                "icon": "delete",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet dialogs = $injector.get(widgetContext.servicesMap.get('dialogs'));\nlet deviceService = $injector.get(widgetContext.servicesMap.get('deviceService'));\n\nopenDeleteDeviceDialog();\n\nfunction openDeleteDeviceDialog() {\n    let title = \"Are you sure you want to delete the device \" + entityName +  \"?\";\n    let content = \"Be careful, after the confirmation, the device and all related data will become unrecoverable!\";\n    dialogs.confirm(title, content, 'Cancel', 'Delete').subscribe(\n        function (result) {\n            if (result) {\n                deleteDevice();\n            }\n        }\n    );\n}\n\nfunction deleteDevice() {\n    deviceService.deleteDevice(entityId.id).subscribe(\n        function () {\n            widgetContext.updateAliases();\n        }\n    );\n}\n",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "267e03a1-53c5-91b5-ae15-a7ebce0cd1b1"
              },
              {
                "name": "Set door opened timeout alarm",
                "icon": "notifications",
                "useShowWidgetActionFunction": true,
                "showWidgetActionFunction": "return data.Type === 'Doors status alarm';\r\n",
                "type": "customPretty",
                "customHtml": "<form #editDeviceForm=\"ngForm\" [formGroup]=\"editDeviceFormGroup\" class=\"edit-device-form\" (ngSubmit)=\"save()\">\n    <mat-toolbar class=\"edit-device-form-toolbar\" fxLayout=\"row\">\n        <h2>Thresholds Configuration</h2>\n        <span fxFlex></span>\n        <button mat-icon-button (click)=\"cancel()\" type=\"button\">\n            <mat-icon class=\"material-icons\">close</mat-icon>\n        </button>\n    </mat-toolbar>\n    <mat-progress-bar color=\"warn\" mode=\"indeterminate\" *ngIf=\"isLoading$ | async\"></mat-progress-bar>\n    <div style=\"height: 4px;\" *ngIf=\"!(isLoading$ | async)\"></div>\n    <div mat-dialog-content fxLayout=\"column\">\n        <fieldset [disabled]=\"(isLoading$ | async) || loading\">\n            <div fxLayout=\"row\" fxLayoutGap=\"8px\" fxLayout.xs=\"column\" fxLayoutGap.xs=\"0\">\n            </div>\n            <div fxLayout=\"row\" fxLayoutGap=\"8px\" fxLayout.xs=\"column\" fxLayoutGap.xs=\"0\">\n            </div>\n            <mat-form-field fxFlex class=\"mat-block\">\n                <mat-label>Open_timeout_limit(s)</mat-label>\n                <input matInput type=\"number\" step=\"1\" formControlName=\"Open_timeout_limit\">\n                <mat-error *ngIf=\"editDeviceFormGroup.get('Open_timeout_limit').hasError('pattern')\">\n                    Invalid value\n                </mat-error>\n            </mat-form-field>\n        </fieldset>\n    </div>\n    <div mat-dialog-actions fxLayout=\"row\" fxLayoutAlign=\"end center\" class=\"edit-device-form-actions\">\n        <button mat-button color=\"primary\"\n                type=\"button\"\n                (click)=\"cancel()\" cdkFocusInitial>\n            Cancel\n        </button>\n        <button mat-button color=\"primary\"\n                type=\"submit\"\n                [disabled]=\"(isLoading$ | async) || loading || editDeviceForm.invalid || !editDeviceForm.dirty\">\n            Save\n        </button>\n    </div>\n</form>",
                "customCss": "/*=======================================================================*/\n/*==========  There are two examples: for edit and add entity  ==========*/\n/*=======================================================================*/\n/*========================  Edit entity example  ========================*/\n/*=======================================================================*/\n/*\n.edit-entity-form .boolean-value-input {\n    padding-left: 5px;\n}\n\n.edit-entity-form .boolean-value-input .checkbox-label {\n    color: rgba(0,0,0,0.54);\n    font-size: 12px;\n}\n\n.relations-list .header {\n    padding-right: 5px;\n    padding-bottom: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .header .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n    font-size: 12px;\n    font-weight: 700;\n    color: rgba(0, 0, 0, .54);\n    white-space: nowrap;\n}\n\n.relations-list .mat-form-field-infix {\n    width: auto !important;\n}\n\n.relations-list .body {\n    padding-right: 5px;\n    padding-bottom: 15px;\n    padding-left: 5px;\n}\n\n.relations-list .body .row {\n    padding-top: 5px;\n}\n\n.relations-list .body .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .body .md-button {\n    margin: 0;\n}\n*/\n/*========================================================================*/\n/*=========================  Add entity example  =========================*/\n/*========================================================================*/\n/*\n.add-entity-form .boolean-value-input {\n    padding-left: 5px;\n}\n\n.add-entity-form .boolean-value-input .checkbox-label {\n    color: rgba(0,0,0,0.54);\n    font-size: 12px;\n}\n\n.relations-list .header {\n    padding-right: 5px;\n    padding-bottom: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .header .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n    font-size: 12px;\n    font-weight: 700;\n    color: rgba(0, 0, 0, .54);\n    white-space: nowrap;\n}\n\n.relations-list .mat-form-field-infix {\n    width: auto !important;\n}\n\n.relations-list .body {\n    padding-right: 5px;\n    padding-bottom: 15px;\n    padding-left: 5px;\n}\n\n.relations-list .body .row {\n    padding-top: 5px;\n}\n\n.relations-list .body .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .body .md-button {\n    margin: 0;\n}\n*/\n",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet customDialog = $injector.get(widgetContext.servicesMap.get('customDialog')),\n    attributeService = $injector.get(widgetContext.servicesMap.get('attributeService'));\n\nopenEditDeviceDialog();\n\nfunction openEditDeviceDialog() {\n    customDialog.customDialog(htmlTemplate, EditDeviceDialogController).subscribe();\n}\n\nfunction EditDeviceDialogController(instance) {\n    let vm = instance;\n\n    vm.attributes = {};\n    let attributesKeys = ['Open_timeout_limit'];\n\n    vm.editDeviceFormGroup = vm.fb.group({\n        Open_timeout_limit: [null, [vm.validators.pattern(/^-?[0-9]+$/)]]\n    });\n\n    getEntityInfo(attributesKeys);\n\n    vm.cancel = function() {\n        vm.dialogRef.close(null);\n    };\n\n    vm.save = () => {\n        vm.loading = true;\n        vm.editDeviceFormGroup.markAsPristine();\n        saveAttributes(entityId).subscribe(\n            () => {\n                vm.loading = false;\n                vm.dialogRef.close(null);\n            },\n            () => {\n                vm.loading = false;\n            }\n        );\n    };\n\n    function getEntityInfo(attributesKeys) {\n        vm.loading = true;\n        attributeService.getEntityAttributes(entityId, 'SERVER_SCOPE', attributesKeys).subscribe(\n            (data) => {\n                if (data.length) {\n                    getEntityAttributes(data);\n                    vm.editDeviceFormGroup.patchValue(vm.attributes, {emitEvent: false});\n                }\n                vm.loading = false;\n            }\n        );\n    }\n\n    function getEntityAttributes(attributes) {\n        for (let i = 0; i < attributes.length; i++) {\n            vm.attributes[attributes[i].key] = attributes[i].value;\n        }\n    }\n\n    function saveAttributes(entityId) {\n        let attributes = vm.editDeviceFormGroup.value;\n        let attributesArray = [];\n        for (let key in attributes) {\n            if (attributes[key] !== vm.attributes[key]) {\n                attributesArray.push({key: key, value: attributes[key]});\n            }\n        }\n        if (attributesArray.length > 0) {\n            return attributeService.saveEntityAttributes(entityId, \"SERVER_SCOPE\", attributesArray);\n        }\n        return widgetContext.rxjs.of([]);\n    }\n}",
                "customResources": [],
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "31f23ef5-6684-420b-8e37-fb8b08ca4532"
              },
              {
                "name": "Email",
                "icon": "email",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "openDashboardState",
                "targetDashboardStateId": "email",
                "setEntityId": true,
                "stateEntityParamName": null,
                "openRightLayout": false,
                "dialogTitle": "",
                "dialogHideDashboardToolbar": true,
                "dialogWidth": null,
                "dialogHeight": null,
                "openInSeparateDialog": true,
                "openInPopover": false,
                "id": "8f3c11c1-bd83-6d9d-22ff-66cf0fa24586"
              }
            ]
          },
          "showTitleIcon": false,
          "titleIcon": "list",
          "iconColor": null,
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "64130b49-b096-a8af-57bf-9791ceb0c4de"
      },
      "ac66b65d-31dc-5bcd-8374-f96de290c6c9": {
        "typeFullFqn": "system.alarm_widgets.alarms_table",
        "type": "alarm",
        "sizeX": 10.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "realtime": {
              "interval": 1000,
              "timewindowMs": 86400000
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgb(0, 0, 0)",
          "padding": "4px",
          "settings": {
            "alarmsTitle": "All opened door",
            "enableSelection": true,
            "enableSearch": true,
            "enableSelectColumnDisplay": false,
            "enableFilter": false,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "showCellActionsMenu": false,
            "reserveSpaceForHiddenAction": "true",
            "displayDetails": true,
            "allowAcknowledgment": false,
            "allowClear": false,
            "allowAssign": false,
            "displayActivity": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "-createdTime",
            "useRowStyleFunction": false,
            "rowStyleFunction": ""
          },
          "title": "Alarms table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "alarmSource": {
            "type": "entity",
            "name": "",
            "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
            "dataKeys": [
              {
                "name": "label",
                "type": "entityField",
                "label": "Name",
                "color": "#2196f3",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": true,
                  "useCellContentFunctionOnExport": true,
                  "cellContentFunction": "var devicetype = alarm.Type;\r\nvar icon = ''; // 用于存放带样式的图标\r\nvar backgroundColor = '#FF8C00';\r\nvar textColor = '#FFFFFF'; \r\nvar fontSize = '25px'; \r\nif (devicetype == 'Doors status alarm') {\r\n    icon = '<span style=\"font-size: ' + fontSize +\r\n        '; \">&#128682;</span>'; // 💧 水滴\r\n} else {\r\n    icon = '<span style=\"font-size: ' + fontSize +\r\n        ';\">&#128167;</span>'; // 🚪 门\r\n}\r\n\r\nreturn '<div style=\"border-radius: 10px; padding: 5px; ' +\r\n    'background-color: ' + backgroundColor + '; ' //背景色\r\n    +\r\n    'color: ' + textColor + '; ' // 设置文字颜色为白色\r\n    +\r\n    'font-size: ' + fontSize + '; ' // 设置字体大小\r\n    +\r\n    'font-weight: bold; text-align: center;\">' + value +\r\n    \"\" + icon +\r\n    '</div>';",
                  "defaultColumnVisibility": "visible",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.07600098333238492,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              },
              {
                "name": "type",
                "type": "entityField",
                "label": "Type",
                "color": "#4caf50",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": false,
                  "useCellContentFunctionOnExport": true,
                  "cellContentFunction": "",
                  "defaultColumnVisibility": "hidden",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.7294462785065285,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              }
            ],
            "alarmFilterConfig": {
              "statusList": [
                "ACTIVE"
              ]
            }
          },
          "alarmsPollingInterval": 5,
          "showTitleIcon": false,
          "titleIcon": "meeting_room",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "30px",
          "titleTooltip": "",
          "widgetStyle": {},
          "displayTimewindow": true,
          "actions": {},
          "configMode": "advanced",
          "alarmFilterConfig": {
            "statusList": [
              "ACTIVE"
            ],
            "severityList": [
              "MAJOR"
            ],
            "typeList": [
              "Opening"
            ],
            "searchPropagatedAlarms": false,
            "assignedToCurrentUser": false,
            "assigneeId": null
          },
          "datasources": [],
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "ac66b65d-31dc-5bcd-8374-f96de290c6c9"
      },
      "5c939ce8-2cde-6cc1-2776-c9d9d0532e91": {
        "typeFullFqn": "system.alarm_widgets.alarms_table",
        "type": "alarm",
        "sizeX": 10.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "realtime": {
              "interval": 1000,
              "timewindowMs": 86400000
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgb(0, 0, 0)",
          "padding": "4px",
          "settings": {
            "alarmsTitle": "Properly",
            "enableSelection": true,
            "enableSearch": true,
            "enableSelectColumnDisplay": false,
            "enableFilter": false,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "showCellActionsMenu": false,
            "reserveSpaceForHiddenAction": "true",
            "displayDetails": true,
            "allowAcknowledgment": false,
            "allowClear": false,
            "allowAssign": false,
            "displayActivity": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "-createdTime",
            "useRowStyleFunction": false,
            "rowStyleFunction": ""
          },
          "title": "Alarms table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "alarmSource": {
            "type": "entity",
            "name": "",
            "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
            "dataKeys": [
              {
                "name": "label",
                "type": "entityField",
                "label": "Name",
                "color": "#2196f3",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": true,
                  "useCellContentFunctionOnExport": true,
                  "cellContentFunction": "var devicetype = alarm.Type;\r\nvar icon = ''; // 用于存放带样式的图标\r\nvar backgroundColor = '#2E8B57';\r\nvar textColor = '#FFFFFF'; \r\nvar fontSize = '25px'; \r\nif (devicetype == 'Doors status alarm') {\r\n    icon = '<span style=\"font-size: ' + fontSize +\r\n        '; \">&#128682;</span>'; // 💧 水滴\r\n} else {\r\n    icon = '<span style=\"font-size: ' + fontSize +\r\n        ';\">&#128167;</span>'; // 🚪 门\r\n}\r\n\r\nreturn '<div style=\"border-radius: 10px; padding: 5px; ' +\r\n    'background-color: ' + backgroundColor + '; ' //背景色\r\n    +\r\n    'color: ' + textColor + '; ' // 设置文字颜色为白色\r\n    +\r\n    'font-size: ' + fontSize + '; ' // 设置字体大小\r\n    +\r\n    'font-weight: bold; text-align: center;\">' + value +\r\n    \"\" + icon +\r\n    '</div>';",
                  "defaultColumnVisibility": "visible",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.2552846806165927,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              },
              {
                "name": "type",
                "type": "entityField",
                "label": "Type",
                "color": "#4caf50",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": false,
                  "useCellContentFunctionOnExport": true,
                  "cellContentFunction": "",
                  "defaultColumnVisibility": "hidden",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.5761464286817441,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              }
            ],
            "alarmFilterConfig": {
              "statusList": [
                "ACTIVE"
              ]
            }
          },
          "alarmsPollingInterval": 5,
          "showTitleIcon": false,
          "titleIcon": "warning",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "widgetStyle": {},
          "displayTimewindow": true,
          "actions": {},
          "configMode": "advanced",
          "alarmFilterConfig": {
            "statusList": [
              "ACTIVE"
            ],
            "severityList": [
              "INDETERMINATE"
            ],
            "typeList": [
              "Closed",
              "No leaks"
            ],
            "searchPropagatedAlarms": false,
            "assignedToCurrentUser": false,
            "assigneeId": null
          },
          "datasources": [],
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "5c939ce8-2cde-6cc1-2776-c9d9d0532e91"
      },
      "38b07ab8-8829-3c65-14c4-9a85ac8305ad": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "38b07ab8-8829-3c65-14c4-9a85ac8305ad"
      },
      "20d6bc1f-2b39-2dce-a718-d27efe74b4d6": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "20d6bc1f-2b39-2dce-a718-d27efe74b4d6"
      },
      "c3b0ef26-7ba0-4596-0280-5eed5a0a2b78": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "c3b0ef26-7ba0-4596-0280-5eed5a0a2b78"
      },
      "32e28923-65d0-214d-0d27-699c8fdf4d29": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "32e28923-65d0-214d-0d27-699c8fdf4d29"
      },
      "59dab390-70cf-00a4-abbe-56137f16d6c4": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "59dab390-70cf-00a4-abbe-56137f16d6c4"
      },
      "d52b3c67-6ae5-92d4-b68f-2741c7e4ce19": {
        "typeFullFqn": "system.cards.entities_table",
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1741517195903,
                "endTimeMs": 1741603595903
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "All widgets",
            "enableSearch": true,
            "enableSelectColumnDisplay": false,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "showCellActionsMenu": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": false,
            "entityNameColumnTitle": "",
            "displayEntityLabel": false,
            "entityLabelColumnTitle": "",
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "name",
            "useRowStyleFunction": false,
            "rowStyleFunction": "var devicetype =entity.Type;;\r\nvar color = '#fff';\r\nvar label;\r\n//var symbol;\r\nif(devicetype=='Water leakage alarm') {\r\n    color = 'orange';\r\n   return label+\"&#127778\"\r\n}\r\n  else{\r\n    color = '#abab00';\r\n   return label+\"&#127770\"\r\n}"
          },
          "title": "Entities table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#4caf50",
                  "settings": {
                    "customTitle": "",
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "cellStyleFunction": "",
                    "useCellContentFunction": true,
                    "useCellContentFunctionOnExport": true,
                    "cellContentFunction": "var devicetype = entity.Type;;\r\nvar color = '#ff0000';\r\nvar icon = ''; // 用于存放带样式的图标\r\n\r\nif (devicetype == 'Doors status alarm') {\r\n    icon = '<span style=\"font-size: 24px; color: red;\">&#128682;</span>'; \r\n} else {\r\n    icon = '<span style=\"font-size: 24px; color: blue;\">&#128167;</span>'; \r\n}\r\nreturn value + \" \" + icon;\r\n",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled",
                    "columnExportOption": "onlyVisible"
                  },
                  "_hash": 0.9871550662328248,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#4caf50",
                  "settings": {
                    "customTitle": "",
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "cellStyleFunction": "",
                    "useCellContentFunction": false,
                    "useCellContentFunctionOnExport": true,
                    "cellContentFunction": "",
                    "defaultColumnVisibility": "hidden",
                    "columnSelectionToDisplay": "enabled",
                    "columnExportOption": "onlyVisible"
                  },
                  "_hash": 0.5832709765970021,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "battery",
                  "color": "#f44336",
                  "settings": {
                    "customTitle": "Battery",
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "cellStyleFunction": "",
                    "useCellContentFunction": true,
                    "useCellContentFunctionOnExport": true,
                    "cellContentFunction": "var battery = value; // 获取传感器上传的电池电压值\r\nconst fullBatteryVoltage = 3.1; // 设定满电电压\r\nconst emptyBatteryVoltage = 2.65; // 设定低电量阈值\r\nlet batteryPercentage = ((battery - emptyBatteryVoltage) / (fullBatteryVoltage - emptyBatteryVoltage)) * 100;\r\n\r\n// 限制范围 0% ~ 100%\r\nbatteryPercentage = Math.max(0, Math.min(100, batteryPercentage));\r\n\r\nlet fontWeight = '400';\r\nlet background = '234, 235, 255, 1';\r\nlet progress = '46, 139, 87, 1'; // 绿色（正常电量）\r\nlet textColor = '';\r\n\r\n// 低电量警告\r\nif (battery <= 2.75) { // 2.75V 以下即为低电量\r\n    background = '209, 39, 48, 0.06'; // 低电量背景（淡红）\r\n    progress = '209, 39, 48, 1'; // 低电量进度条（红色）\r\n    fontWeight = '500';\r\n    textColor = '#D12730';\r\n}\r\n\r\nconst percent = batteryPercentage.toFixed(0) + '%'; \r\nconst valueText = `${battery.toFixed(2)}V (${percent})`; // 显示 \"2.9V (80%)\" 这种格式\r\n\r\nreturn '<div style=\"display: flex; justify-content: space-between; align-items: center; margin-right: 10%; min-width: 90px;\">' + \r\n           '<span style=\"padding: 4px; font-weight: ' + fontWeight +'; color: ' + textColor + ';\">' + valueText + '</span>' + \r\n           '<div style=\"width: 100%; max-width: 100px; height: 16px; background: linear-gradient(to right, rgba(' + progress + ') ' + percent + ', rgba(' + background + ') '+ percent + '); border-radius: 5.21053px;\">' + \r\n           '</div>' + \r\n        '</div>';\r\n",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled",
                    "columnExportOption": "onlyVisible"
                  },
                  "_hash": 0.541103810330559,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "displayTimewindow": false,
          "configMode": "advanced",
          "actions": {
            "headerButton": [
              {
                "name": "Add new device",
                "icon": "add",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "customPretty",
                "customHtml": "<form #addDeviceForm=\"ngForm\" [formGroup]=\"addDeviceFormGroup\"\r\n      (ngSubmit)=\"save()\" style=\"width: 480px;\">\r\n  <mat-toolbar fxLayout=\"row\" color=\"primary\">\r\n    <h2>Add device</h2>\r\n    <span fxFlex></span>\r\n    <button mat-icon-button\r\n            (click)=\"cancel()\"\r\n            type=\"button\">\r\n      <mat-icon class=\"material-icons\">close</mat-icon>\r\n    </button>\r\n    \r\n<!--工具栏-->  <!---->\r\n  </mat-toolbar>\r\n  <mat-progress-bar color=\"warn\" mode=\"indeterminate\" *ngIf=\"isLoading$ | async\"></mat-progress-bar>\r\n  <div style=\"height: 4px;\" *ngIf=\"!(isLoading$ | async)\"></div>  \r\n<div mat-dialog-content>\r\n      \r\n<!--IMEI-->\r\n        <div class=\"mat-padding\" fxLayout=\"column\">\r\n            <mat-form-field class=\"mat-block\">\r\n                <mat-label>Dev_EUI</mat-label>\r\n                <input matInput formControlName=\"deviceName\" required>\r\n            </mat-form-field>\r\n\r\n<!--Label-->\r\n            <mat-form-field fxFlex=\"50\" class=\"mat-block\">\r\n                <mat-label>Sensor Name</mat-label>\r\n                <input matInput formControlName=\"deviceLabel\">\r\n            </mat-form-field>\r\n       \r\n        \r\n<!--Device profile-->\r\n               <mat-form-field fxFlex=\"100\" class=\"mat-block\">\r\n                <mat-label>Device Type</mat-label>\r\n                    <mat-select formControlName=\"deviceType\" required>\r\n               <mat-option *ngFor=\"let type of deviceTypes\" [value]=\"type\">{{ type }}</mat-option>\r\n            </mat-select>\r\n</mat-form-field>\r\n     </div>\r\n</div>                     \r\n\r\n\r\n  <div mat-dialog-actions fxLayout=\"row\">\r\n    <span fxFlex></span>\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            style=\"margin-right: 20px;\"\r\n            type=\"submit\"\r\n            [disabled]=\"(isLoading$ | async) || addDeviceForm.invalid || !addDeviceForm.dirty\">\r\n      Create\r\n    </button>\r\n  </div>\r\n</form>\r\n",
                "customCss": "",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet customDialog = $injector.get(widgetContext.servicesMap.get('customDialog'));\nlet deviceService = $injector.get(widgetContext.servicesMap.get('deviceService'));\nlet attributeService = $injector.get(widgetContext.servicesMap.get('attributeService'));\n\nopenAddDeviceDialog();\n//新增设备\nfunction openAddDeviceDialog() {\n    customDialog.customDialog(htmlTemplate, AddDeviceDialogController).subscribe();\n}\n//对话框\nfunction AddDeviceDialogController(instance) {\n    let vm = instance;\n    vm.deviceTypes = [\"Water leakage alarm\", \"Doors status alarm\"];\n    vm.addDeviceFormGroup = vm.fb.group({\n      deviceName: ['', [vm.validators.required]],\n      deviceType:  ['', [vm.validators.required]],\n      deviceLabel: ['',[vm.validators.required]],\n      attributes: vm.fb.group({\n          latitude: [null],\n          longitude: [null]\n      })      \n    });\n//取消    \n    vm.cancel = function() {\n        vm.dialogRef.close(null);\n    };\n//保存为值\n    vm.save = function() {\n        vm.addDeviceFormGroup.markAsPristine();\n        let device = {\n            name: vm.addDeviceFormGroup.get('deviceName').value,\n            type: vm.addDeviceFormGroup.get('deviceType').value,\n            label: vm.addDeviceFormGroup.get('deviceLabel').value,\n        };\n        deviceService.saveDevice(device).subscribe(\n            function (device) {\n                saveAttributes(device.id).subscribe(\n                    function () {\n                        widgetContext.updateAliases();\n                        vm.dialogRef.close(null);\n                    }\n                );\n            }\n        );\n    };\n    \n    function saveAttributes(entityId) {\n        let attributes = vm.addDeviceFormGroup.get('attributes').value;\n        let attributesArray = [];\n        for (let key in attributes) {\n            attributesArray.push({key: key, value: attributes[key]});\n        }\n        if (attributesArray.length > 0) {\n            return attributeService.saveEntityAttributes(entityId, \"SERVER_SCOPE\", attributesArray);\n        } else {\n            return widgetContext.rxjs.of([]);\n        }\n    }\n}",
                "customResources": [],
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "c8bb4b59-432e-bacc-4f89-d6ed50004186"
              }
            ],
            "actionCellButton": [
              {
                "name": "Edit device",
                "icon": "edit",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "customPretty",
                "customHtml": "<form #editDeviceForm=\"ngForm\" [formGroup]=\"editDeviceFormGroup\"\n      (ngSubmit)=\"save()\" style=\"width: 480px;\">\n  <mat-toolbar fxLayout=\"row\" color=\"primary\">\n    <h2>Edit device</h2>\n    <span fxFlex></span>\n    <button mat-icon-button\n            (click)=\"cancel()\"\n            type=\"button\">\n      <mat-icon class=\"material-icons\">close</mat-icon>\n    </button>\n  </mat-toolbar>\n  <mat-progress-bar color=\"warn\" mode=\"indeterminate\" *ngIf=\"isLoading$ | async\">\n  </mat-progress-bar>\n  <div style=\"height: 4px;\" *ngIf=\"!(isLoading$ | async)\"></div>\n  <div mat-dialog-content>\n      \n<!--IMEI-->\n    <div class=\"mat-padding\" fxLayout=\"column\">\n            <mat-form-field class=\"mat-block\">\n                <mat-label>Dev_EUI</mat-label>\n                <input matInput formControlName=\"deviceName\" required>\n            </mat-form-field>\n<!--Label-->\n                <mat-form-field fxFlex=\"50\" class=\"mat-block\">\n                    <mat-label>Sensor Name</mat-label>\n                    <input matInput formControlName=\"deviceLabel\">\n                </mat-form-field>\n<!--Device profile-->\n                <mat-form-field fxFlex=\"100\" class=\"mat-block\">\n                    <mat-label>Device Type</mat-label>\n                    <mat-select formControlName=\"deviceType\" required>\n                    <mat-option *ngFor=\"let type of deviceTypes\" [value]=\"type\">{{ type }}</mat-option>\n                    </mat-select>\n            </mat-form-field>\n    </div>                     \n</div>\n  <div mat-dialog-actions fxLayout=\"row\">\n    <span fxFlex></span>\n    <button mat-button color=\"primary\"\n            type=\"button\"\n            [disabled]=\"(isLoading$ | async)\"\n            (click)=\"cancel()\" cdkFocusInitial>\n      Cancel\n    </button>\n    <button mat-button mat-raised-button color=\"primary\"\n            style=\"margin-right: 20px;\"\n            type=\"submit\"\n            [disabled]=\"(isLoading$ | async) || editDeviceForm.invalid || !editDeviceForm.dirty\">\n      Update\n    </button>\n  </div>\n</form>\n",
                "customCss": "/*=======================================================================*/\n/*==========  There are two examples: for edit and add entity  ==========*/\n/*=======================================================================*/\n/*========================  Edit entity example  ========================*/\n/*=======================================================================*/\n/*\n.edit-entity-form .boolean-value-input {\n    padding-left: 5px;\n}\n\n.edit-entity-form .boolean-value-input .checkbox-label {\n    color: rgba(0,0,0,0.54);\n    font-size: 12px;\n}\n\n.relations-list .header {\n    padding-right: 5px;\n    padding-bottom: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .header .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n    font-size: 12px;\n    font-weight: 700;\n    color: rgba(0, 0, 0, .54);\n    white-space: nowrap;\n}\n\n.relations-list .mat-form-field-infix {\n    width: auto !important;\n}\n\n.relations-list .body {\n    padding-right: 5px;\n    padding-bottom: 15px;\n    padding-left: 5px;\n}\n\n.relations-list .body .row {\n    padding-top: 5px;\n}\n\n.relations-list .body .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .body .md-button {\n    margin: 0;\n}\n*/\n/*========================================================================*/\n/*=========================  Add entity example  =========================*/\n/*========================================================================*/\n/*\n.add-entity-form .boolean-value-input {\n    padding-left: 5px;\n}\n\n.add-entity-form .boolean-value-input .checkbox-label {\n    color: rgba(0,0,0,0.54);\n    font-size: 12px;\n}\n\n.relations-list .header {\n    padding-right: 5px;\n    padding-bottom: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .header .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n    font-size: 12px;\n    font-weight: 700;\n    color: rgba(0, 0, 0, .54);\n    white-space: nowrap;\n}\n\n.relations-list .mat-form-field-infix {\n    width: auto !important;\n}\n\n.relations-list .body {\n    padding-right: 5px;\n    padding-bottom: 15px;\n    padding-left: 5px;\n}\n\n.relations-list .body .row {\n    padding-top: 5px;\n}\n\n.relations-list .body .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .body .md-button {\n    margin: 0;\n}\n*/\n",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet customDialog = $injector.get(widgetContext.servicesMap\n    .get('customDialog'));\nlet deviceService = $injector.get(widgetContext.servicesMap\n    .get('deviceService'));\nlet attributeService = $injector.get(widgetContext\n    .servicesMap.get('attributeService'));\n\nopenEditDeviceDialog();\n\nfunction openEditDeviceDialog() {\n    customDialog.customDialog(htmlTemplate,\n        EditDeviceDialogController).subscribe();\n}\n\nfunction EditDeviceDialogController(instance) {\n    let vm = instance;\n\n    vm.device = null;\n    vm.attributes = {};\n    vm.deviceTypes = [\"Water leakage alarm\", \"Doors status alarm\"];\n    vm.editDeviceFormGroup = vm.fb.group({\n        deviceName: ['', [vm.validators.required]],\n        deviceType: ['', [vm.validators.required]],\n        deviceLabel: ['', [vm.validators.required]],\n\n        attributes: vm.fb.group({\n            latitude: [null],\n            longitude: [null]\n        })\n    });\n\n    vm.cancel = function() {\n        vm.dialogRef.close(null);\n    };\n\n    vm.save = function() {\n        vm.editDeviceFormGroup.markAsPristine();\n        if (vm.editDeviceFormGroup.get('deviceType')\n            .value !== vm.device.type) {\n            delete vm.device.deviceProfileId;\n        }\n        vm.device.name = vm.editDeviceFormGroup.get(\n                'deviceName').value,\n            vm.device.type = vm.editDeviceFormGroup.get(\n                'deviceType').alue,\n            vm.device.label = vm.editDeviceFormGroup\n            .get('deviceLabel').value\n\n        deviceService.saveDevice(vm.device).subscribe(\n            function() {\n                saveAttributes().subscribe(\n                    function() {\n                        widgetContext\n                            .updateAliases();\n                        vm.dialogRef.close(\n                        null);\n                    }\n                );\n            }\n        );\n    };\n\n    getEntityInfo();\n\n    function getEntityInfo() {\n        deviceService.getDevice(entityId.id).subscribe(\n            function(device) {\n                attributeService.getEntityAttributes(\n                        entityId, 'SERVER_SCOPE',\n                        ['latitude', 'longitude'])\n                    .subscribe(\n                        function(attributes) {\n                            for (let i = 0; i <\n                                attributes.length; i++\n                                ) {\n                                vm.attributes[\n                                        attributes[i]\n                                        .key] =\n                                    attributes[i].value;\n                            }\n                            vm.device = device;\n                            vm.editDeviceFormGroup\n                                .patchValue({\n                                    deviceName: vm\n                                        .device\n                                        .name,\n                                    deviceType: vm\n                                        .device\n                                        .type,\n                                    deviceLabel: vm\n                                        .device\n                                        .label,\n                                    attributes: {\n                                        latitude: vm\n                                            .attributes\n                                            .latitude,\n                                        longitude: vm\n                                            .attributes\n                                            .longitude\n                                    }\n                                }, {\n                                    emitEvent: false\n                                });\n                        }\n                    );\n            }\n        );\n    }\n\n    function saveAttributes() {\n        let attributes = vm.editDeviceFormGroup.get(\n            'attributes').value;\n        let attributesArray = [];\n        for (let key in attributes) {\n            attributesArray.push({\n                key: key,\n                value: attributes[key]\n            });\n        }\n        if (attributesArray.length > 0) {\n            return attributeService.saveEntityAttributes(\n                entityId, 'SERVER_SCOPE',\n                attributesArray);\n        } else {\n            return widgetContext.rxjs.of([]);\n        }\n    }\n}",
                "customResources": [],
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "c5e94b42-8206-bc70-2aaa-ed2f2c42333d"
              },
              {
                "name": "Delete device",
                "icon": "delete",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet dialogs = $injector.get(widgetContext.servicesMap.get('dialogs'));\nlet deviceService = $injector.get(widgetContext.servicesMap.get('deviceService'));\n\nopenDeleteDeviceDialog();\n\nfunction openDeleteDeviceDialog() {\n    let title = \"Are you sure you want to delete the device \" + entityName +  \"?\";\n    let content = \"Be careful, after the confirmation, the device and all related data will become unrecoverable!\";\n    dialogs.confirm(title, content, 'Cancel', 'Delete').subscribe(\n        function (result) {\n            if (result) {\n                deleteDevice();\n            }\n        }\n    );\n}\n\nfunction deleteDevice() {\n    deviceService.deleteDevice(entityId.id).subscribe(\n        function () {\n            widgetContext.updateAliases();\n        }\n    );\n}\n",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "267e03a1-53c5-91b5-ae15-a7ebce0cd1b1"
              },
              {
                "name": "Set door opened timeout alarm",
                "icon": "notifications",
                "useShowWidgetActionFunction": true,
                "showWidgetActionFunction": "return data.Type === 'Doors status alarm';\r\n",
                "type": "customPretty",
                "customHtml": "<form #editDeviceForm=\"ngForm\" [formGroup]=\"editDeviceFormGroup\" class=\"edit-device-form\" (ngSubmit)=\"save()\">\n    <mat-toolbar class=\"edit-device-form-toolbar\" fxLayout=\"row\">\n        <h2>Thresholds Configuration</h2>\n        <span fxFlex></span>\n        <button mat-icon-button (click)=\"cancel()\" type=\"button\">\n            <mat-icon class=\"material-icons\">close</mat-icon>\n        </button>\n    </mat-toolbar>\n    <mat-progress-bar color=\"warn\" mode=\"indeterminate\" *ngIf=\"isLoading$ | async\"></mat-progress-bar>\n    <div style=\"height: 4px;\" *ngIf=\"!(isLoading$ | async)\"></div>\n    <div mat-dialog-content fxLayout=\"column\">\n        <fieldset [disabled]=\"(isLoading$ | async) || loading\">\n            <div fxLayout=\"row\" fxLayoutGap=\"8px\" fxLayout.xs=\"column\" fxLayoutGap.xs=\"0\">\n            </div>\n            <div fxLayout=\"row\" fxLayoutGap=\"8px\" fxLayout.xs=\"column\" fxLayoutGap.xs=\"0\">\n            </div>\n            <mat-form-field fxFlex class=\"mat-block\">\n                <mat-label>Open_timeout_limit(s)</mat-label>\n                <input matInput type=\"number\" step=\"1\" formControlName=\"Open_timeout_limit\">\n                <mat-error *ngIf=\"editDeviceFormGroup.get('Open_timeout_limit').hasError('pattern')\">\n                    Invalid value\n                </mat-error>\n            </mat-form-field>\n        </fieldset>\n    </div>\n    <div mat-dialog-actions fxLayout=\"row\" fxLayoutAlign=\"end center\" class=\"edit-device-form-actions\">\n        <button mat-button color=\"primary\"\n                type=\"button\"\n                (click)=\"cancel()\" cdkFocusInitial>\n            Cancel\n        </button>\n        <button mat-button color=\"primary\"\n                type=\"submit\"\n                [disabled]=\"(isLoading$ | async) || loading || editDeviceForm.invalid || !editDeviceForm.dirty\">\n            Save\n        </button>\n    </div>\n</form>",
                "customCss": "/*=======================================================================*/\n/*==========  There are two examples: for edit and add entity  ==========*/\n/*=======================================================================*/\n/*========================  Edit entity example  ========================*/\n/*=======================================================================*/\n/*\n.edit-entity-form .boolean-value-input {\n    padding-left: 5px;\n}\n\n.edit-entity-form .boolean-value-input .checkbox-label {\n    color: rgba(0,0,0,0.54);\n    font-size: 12px;\n}\n\n.relations-list .header {\n    padding-right: 5px;\n    padding-bottom: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .header .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n    font-size: 12px;\n    font-weight: 700;\n    color: rgba(0, 0, 0, .54);\n    white-space: nowrap;\n}\n\n.relations-list .mat-form-field-infix {\n    width: auto !important;\n}\n\n.relations-list .body {\n    padding-right: 5px;\n    padding-bottom: 15px;\n    padding-left: 5px;\n}\n\n.relations-list .body .row {\n    padding-top: 5px;\n}\n\n.relations-list .body .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .body .md-button {\n    margin: 0;\n}\n*/\n/*========================================================================*/\n/*=========================  Add entity example  =========================*/\n/*========================================================================*/\n/*\n.add-entity-form .boolean-value-input {\n    padding-left: 5px;\n}\n\n.add-entity-form .boolean-value-input .checkbox-label {\n    color: rgba(0,0,0,0.54);\n    font-size: 12px;\n}\n\n.relations-list .header {\n    padding-right: 5px;\n    padding-bottom: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .header .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n    font-size: 12px;\n    font-weight: 700;\n    color: rgba(0, 0, 0, .54);\n    white-space: nowrap;\n}\n\n.relations-list .mat-form-field-infix {\n    width: auto !important;\n}\n\n.relations-list .body {\n    padding-right: 5px;\n    padding-bottom: 15px;\n    padding-left: 5px;\n}\n\n.relations-list .body .row {\n    padding-top: 5px;\n}\n\n.relations-list .body .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .body .md-button {\n    margin: 0;\n}\n*/\n",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet customDialog = $injector.get(widgetContext.servicesMap.get('customDialog')),\n    attributeService = $injector.get(widgetContext.servicesMap.get('attributeService'));\n\nopenEditDeviceDialog();\n\nfunction openEditDeviceDialog() {\n    customDialog.customDialog(htmlTemplate, EditDeviceDialogController).subscribe();\n}\n\nfunction EditDeviceDialogController(instance) {\n    let vm = instance;\n\n    vm.attributes = {};\n    let attributesKeys = ['Open_timeout_limit'];\n\n    vm.editDeviceFormGroup = vm.fb.group({\n        Open_timeout_limit: [null, [vm.validators.pattern(/^-?[0-9]+$/)]]\n    });\n\n    getEntityInfo(attributesKeys);\n\n    vm.cancel = function() {\n        vm.dialogRef.close(null);\n    };\n\n    vm.save = () => {\n        vm.loading = true;\n        vm.editDeviceFormGroup.markAsPristine();\n        saveAttributes(entityId).subscribe(\n            () => {\n                vm.loading = false;\n                vm.dialogRef.close(null);\n            },\n            () => {\n                vm.loading = false;\n            }\n        );\n    };\n\n    function getEntityInfo(attributesKeys) {\n        vm.loading = true;\n        attributeService.getEntityAttributes(entityId, 'SERVER_SCOPE', attributesKeys).subscribe(\n            (data) => {\n                if (data.length) {\n                    getEntityAttributes(data);\n                    vm.editDeviceFormGroup.patchValue(vm.attributes, {emitEvent: false});\n                }\n                vm.loading = false;\n            }\n        );\n    }\n\n    function getEntityAttributes(attributes) {\n        for (let i = 0; i < attributes.length; i++) {\n            vm.attributes[attributes[i].key] = attributes[i].value;\n        }\n    }\n\n    function saveAttributes(entityId) {\n        let attributes = vm.editDeviceFormGroup.value;\n        let attributesArray = [];\n        for (let key in attributes) {\n            if (attributes[key] !== vm.attributes[key]) {\n                attributesArray.push({key: key, value: attributes[key]});\n            }\n        }\n        if (attributesArray.length > 0) {\n            return attributeService.saveEntityAttributes(entityId, \"SERVER_SCOPE\", attributesArray);\n        }\n        return widgetContext.rxjs.of([]);\n    }\n}",
                "customResources": [],
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "31f23ef5-6684-420b-8e37-fb8b08ca4532"
              },
              {
                "name": "Email",
                "icon": "email",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "openDashboardState",
                "targetDashboardStateId": "email",
                "setEntityId": true,
                "stateEntityParamName": null,
                "openRightLayout": false,
                "dialogTitle": "",
                "dialogHideDashboardToolbar": true,
                "dialogWidth": null,
                "dialogHeight": null,
                "openInSeparateDialog": true,
                "openInPopover": false,
                "id": "8f3c11c1-bd83-6d9d-22ff-66cf0fa24586"
              }
            ]
          },
          "showTitleIcon": false,
          "titleIcon": "list",
          "iconColor": null,
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "d52b3c67-6ae5-92d4-b68f-2741c7e4ce19"
      },
      "d4f7175c-3f33-4931-69a6-c8213a76faef": {
        "typeFullFqn": "system.alarm_widgets.alarms_table",
        "type": "alarm",
        "sizeX": 10.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "realtime": {
              "interval": 1000,
              "timewindowMs": 86400000
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgb(0, 0, 0)",
          "padding": "1px",
          "settings": {
            "alarmsTitle": "Leaking&Opened timeout!!!",
            "enableSelection": false,
            "enableSearch": true,
            "enableSelectColumnDisplay": false,
            "enableFilter": false,
            "enableStickyHeader": true,
            "enableStickyAction": false,
            "showCellActionsMenu": false,
            "reserveSpaceForHiddenAction": "true",
            "displayDetails": true,
            "allowAcknowledgment": false,
            "allowClear": false,
            "allowAssign": false,
            "displayActivity": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "-createdTime",
            "useRowStyleFunction": false,
            "rowStyleFunction": ""
          },
          "title": "Alarms table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "alarmSource": {
            "type": "entity",
            "name": "",
            "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
            "dataKeys": [
              {
                "name": "label",
                "type": "entityField",
                "label": "Name",
                "color": "#FF0000",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": true,
                  "useCellContentFunctionOnExport": false,
                  "cellContentFunction": "var devicetype=alarm.Type;\r\nvar icon = ''; // 用于存放带样式的图标\r\nvar backgroundColor = '#FF0000'; // 背景色（红色）\r\nvar textColor = '#FFFFFF'; // 文字颜色（白色）\r\nvar fontSize = '25px'; // 字体大小\r\nif (devicetype == 'Doors status alarm') {\r\n    icon = '<span style=\"font-size: ' + fontSize +'; \">&#128682;</span>'; // 💧 水滴\r\n} else {\r\n    icon = '<span style=\"font-size: ' + fontSize +';\">&#128167;</span>'; // 🚪 门\r\n}\r\n\r\nreturn  '<div style=\"border-radius: 10px; padding: 5px; '\r\n+'background-color: ' + backgroundColor + '; '//背景色\r\n+'color: ' + textColor + '; '  // 设置文字颜色为白色\r\n+'font-size: ' + fontSize + '; '  // 设置字体大小\r\n+'font-weight: bold; text-align: center;\">' +value+\"\" + icon\r\n+ '</div>';\r\n",
                  "defaultColumnVisibility": "visible",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.3104297401262075,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              },
              {
                "name": "type",
                "type": "entityField",
                "label": "Type",
                "color": "#4caf50",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": false,
                  "useCellContentFunctionOnExport": true,
                  "cellContentFunction": "",
                  "defaultColumnVisibility": "hidden",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.4656687614408881,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              }
            ],
            "alarmFilterConfig": {
              "statusList": [
                "ACTIVE"
              ]
            }
          },
          "alarmsPollingInterval": 5,
          "showTitleIcon": false,
          "titleIcon": "warning",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "widgetStyle": {},
          "displayTimewindow": true,
          "actions": {
            "headerButton": []
          },
          "configMode": "advanced",
          "alarmFilterConfig": {
            "statusList": [
              "ACTIVE"
            ],
            "severityList": [
              "CRITICAL",
              "MAJOR"
            ],
            "typeList": [
              "Opened timeout",
              "Water leaking"
            ],
            "searchPropagatedAlarms": false,
            "assignedToCurrentUser": false,
            "assigneeId": null
          },
          "datasources": [],
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "d4f7175c-3f33-4931-69a6-c8213a76faef"
      },
      "23b953a5-2d3d-cd22-8893-0e1de0ec634e": {
        "typeFullFqn": "system.alarm_widgets.alarms_table",
        "type": "alarm",
        "sizeX": 10.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "realtime": {
              "interval": 1000,
              "timewindowMs": 86400000
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgb(0, 0, 0)",
          "padding": "4px",
          "settings": {
            "alarmsTitle": "All opened door",
            "enableSelection": true,
            "enableSearch": true,
            "enableSelectColumnDisplay": false,
            "enableFilter": false,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "showCellActionsMenu": false,
            "reserveSpaceForHiddenAction": "true",
            "displayDetails": true,
            "allowAcknowledgment": false,
            "allowClear": false,
            "allowAssign": false,
            "displayActivity": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "-createdTime",
            "useRowStyleFunction": false,
            "rowStyleFunction": ""
          },
          "title": "Alarms table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "alarmSource": {
            "type": "entity",
            "name": "",
            "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
            "dataKeys": [
              {
                "name": "label",
                "type": "entityField",
                "label": "Name",
                "color": "#2196f3",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": true,
                  "useCellContentFunctionOnExport": true,
                  "cellContentFunction": "var devicetype = alarm.Type;\r\nvar icon = ''; // 用于存放带样式的图标\r\nvar backgroundColor = '#FF8C00';\r\nvar textColor = '#FFFFFF'; \r\nvar fontSize = '25px'; \r\nif (devicetype == 'Doors status alarm') {\r\n    icon = '<span style=\"font-size: ' + fontSize +\r\n        '; \">&#128682;</span>'; // 💧 水滴\r\n} else {\r\n    icon = '<span style=\"font-size: ' + fontSize +\r\n        ';\">&#128167;</span>'; // 🚪 门\r\n}\r\n\r\nreturn '<div style=\"border-radius: 10px; padding: 5px; ' +\r\n    'background-color: ' + backgroundColor + '; ' //背景色\r\n    +\r\n    'color: ' + textColor + '; ' // 设置文字颜色为白色\r\n    +\r\n    'font-size: ' + fontSize + '; ' // 设置字体大小\r\n    +\r\n    'font-weight: bold; text-align: center;\">' + value +\r\n    \"\" + icon +\r\n    '</div>';",
                  "defaultColumnVisibility": "visible",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.07600098333238492,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              },
              {
                "name": "type",
                "type": "entityField",
                "label": "Type",
                "color": "#4caf50",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": false,
                  "useCellContentFunctionOnExport": true,
                  "cellContentFunction": "",
                  "defaultColumnVisibility": "hidden",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.7294462785065285,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              }
            ],
            "alarmFilterConfig": {
              "statusList": [
                "ACTIVE"
              ]
            }
          },
          "alarmsPollingInterval": 5,
          "showTitleIcon": false,
          "titleIcon": "meeting_room",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "30px",
          "titleTooltip": "",
          "widgetStyle": {},
          "displayTimewindow": true,
          "actions": {},
          "configMode": "advanced",
          "alarmFilterConfig": {
            "statusList": [
              "ACTIVE"
            ],
            "severityList": [
              "MAJOR"
            ],
            "typeList": [
              "Opening"
            ],
            "searchPropagatedAlarms": false,
            "assignedToCurrentUser": false,
            "assigneeId": null
          },
          "datasources": [],
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "23b953a5-2d3d-cd22-8893-0e1de0ec634e"
      },
      "479a0271-b64a-e594-2935-a3b350f5a460": {
        "typeFullFqn": "system.alarm_widgets.alarms_table",
        "type": "alarm",
        "sizeX": 10.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "realtime": {
              "interval": 1000,
              "timewindowMs": 86400000
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgb(0, 0, 0)",
          "padding": "4px",
          "settings": {
            "alarmsTitle": "Properly",
            "enableSelection": true,
            "enableSearch": true,
            "enableSelectColumnDisplay": false,
            "enableFilter": false,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "showCellActionsMenu": false,
            "reserveSpaceForHiddenAction": "true",
            "displayDetails": true,
            "allowAcknowledgment": false,
            "allowClear": false,
            "allowAssign": false,
            "displayActivity": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "-createdTime",
            "useRowStyleFunction": false,
            "rowStyleFunction": ""
          },
          "title": "Alarms table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "alarmSource": {
            "type": "entity",
            "name": "",
            "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
            "dataKeys": [
              {
                "name": "label",
                "type": "entityField",
                "label": "Name",
                "color": "#2196f3",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": true,
                  "useCellContentFunctionOnExport": true,
                  "cellContentFunction": "var devicetype = alarm.Type;\r\nvar icon = ''; // 用于存放带样式的图标\r\nvar backgroundColor = '#2E8B57';\r\nvar textColor = '#FFFFFF'; \r\nvar fontSize = '25px'; \r\nif (devicetype == 'Doors status alarm') {\r\n    icon = '<span style=\"font-size: ' + fontSize +\r\n        '; \">&#128682;</span>'; // 💧 水滴\r\n} else {\r\n    icon = '<span style=\"font-size: ' + fontSize +\r\n        ';\">&#128167;</span>'; // 🚪 门\r\n}\r\n\r\nreturn '<div style=\"border-radius: 10px; padding: 5px; ' +\r\n    'background-color: ' + backgroundColor + '; ' //背景色\r\n    +\r\n    'color: ' + textColor + '; ' // 设置文字颜色为白色\r\n    +\r\n    'font-size: ' + fontSize + '; ' // 设置字体大小\r\n    +\r\n    'font-weight: bold; text-align: center;\">' + value +\r\n    \"\" + icon +\r\n    '</div>';",
                  "defaultColumnVisibility": "visible",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.2552846806165927,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              },
              {
                "name": "type",
                "type": "entityField",
                "label": "Type",
                "color": "#4caf50",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": false,
                  "useCellContentFunctionOnExport": true,
                  "cellContentFunction": "",
                  "defaultColumnVisibility": "hidden",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.5761464286817441,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              }
            ],
            "alarmFilterConfig": {
              "statusList": [
                "ACTIVE"
              ]
            }
          },
          "alarmsPollingInterval": 5,
          "showTitleIcon": false,
          "titleIcon": "warning",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "widgetStyle": {},
          "displayTimewindow": true,
          "actions": {},
          "configMode": "advanced",
          "alarmFilterConfig": {
            "statusList": [
              "ACTIVE"
            ],
            "severityList": [
              "INDETERMINATE"
            ],
            "typeList": [
              "Closed",
              "No leaks"
            ],
            "searchPropagatedAlarms": false,
            "assignedToCurrentUser": false,
            "assigneeId": null
          },
          "datasources": [],
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "479a0271-b64a-e594-2935-a3b350f5a460"
      },
      "e04494b5-0442-4892-639f-79bc32256f1f": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "e04494b5-0442-4892-639f-79bc32256f1f"
      },
      "adefbbed-95df-5e3e-be06-730622055dd1": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "adefbbed-95df-5e3e-be06-730622055dd1"
      },
      "49970e15-c4f8-03d0-621f-149370fe213d": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "49970e15-c4f8-03d0-621f-149370fe213d"
      },
      "c0477843-0e9d-fe83-aa27-f98e89361619": {
        "typeFullFqn": "system.cards.entities_table",
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1741517195903,
                "endTimeMs": 1741603595903
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "All widgets",
            "enableSearch": true,
            "enableSelectColumnDisplay": false,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "showCellActionsMenu": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": false,
            "entityNameColumnTitle": "",
            "displayEntityLabel": false,
            "entityLabelColumnTitle": "",
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "name",
            "useRowStyleFunction": false,
            "rowStyleFunction": "var devicetype =entity.Type;;\r\nvar color = '#fff';\r\nvar label;\r\n//var symbol;\r\nif(devicetype=='Water leakage alarm') {\r\n    color = 'orange';\r\n   return label+\"&#127778\"\r\n}\r\n  else{\r\n    color = '#abab00';\r\n   return label+\"&#127770\"\r\n}"
          },
          "title": "Entities table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#4caf50",
                  "settings": {
                    "customTitle": "",
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "cellStyleFunction": "",
                    "useCellContentFunction": true,
                    "useCellContentFunctionOnExport": true,
                    "cellContentFunction": "var devicetype = entity.Type;;\r\nvar color = '#ff0000';\r\nvar icon = ''; // 用于存放带样式的图标\r\n\r\nif (devicetype == 'Doors status alarm') {\r\n    icon = '<span style=\"font-size: 24px; color: red;\">&#128682;</span>'; \r\n} else {\r\n    icon = '<span style=\"font-size: 24px; color: blue;\">&#128167;</span>'; \r\n}\r\nreturn value + \" \" + icon;\r\n",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled",
                    "columnExportOption": "onlyVisible"
                  },
                  "_hash": 0.9871550662328248,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#4caf50",
                  "settings": {
                    "customTitle": "",
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "cellStyleFunction": "",
                    "useCellContentFunction": false,
                    "useCellContentFunctionOnExport": true,
                    "cellContentFunction": "",
                    "defaultColumnVisibility": "hidden",
                    "columnSelectionToDisplay": "enabled",
                    "columnExportOption": "onlyVisible"
                  },
                  "_hash": 0.5832709765970021,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "battery",
                  "color": "#f44336",
                  "settings": {
                    "customTitle": "Battery",
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "cellStyleFunction": "",
                    "useCellContentFunction": true,
                    "useCellContentFunctionOnExport": true,
                    "cellContentFunction": "var battery = value; // 获取传感器上传的电池电压值\r\nconst fullBatteryVoltage = 3.1; // 设定满电电压\r\nconst emptyBatteryVoltage = 2.65; // 设定低电量阈值\r\nlet batteryPercentage = ((battery - emptyBatteryVoltage) / (fullBatteryVoltage - emptyBatteryVoltage)) * 100;\r\n\r\n// 限制范围 0% ~ 100%\r\nbatteryPercentage = Math.max(0, Math.min(100, batteryPercentage));\r\n\r\nlet fontWeight = '400';\r\nlet background = '234, 235, 255, 1';\r\nlet progress = '46, 139, 87, 1'; // 绿色（正常电量）\r\nlet textColor = '';\r\n\r\n// 低电量警告\r\nif (battery <= 2.75) { // 2.75V 以下即为低电量\r\n    background = '209, 39, 48, 0.06'; // 低电量背景（淡红）\r\n    progress = '209, 39, 48, 1'; // 低电量进度条（红色）\r\n    fontWeight = '500';\r\n    textColor = '#D12730';\r\n}\r\n\r\nconst percent = batteryPercentage.toFixed(0) + '%'; \r\nconst valueText = `${battery.toFixed(2)}V (${percent})`; // 显示 \"2.9V (80%)\" 这种格式\r\n\r\nreturn '<div style=\"display: flex; justify-content: space-between; align-items: center; margin-right: 10%; min-width: 90px;\">' + \r\n           '<span style=\"padding: 4px; font-weight: ' + fontWeight +'; color: ' + textColor + ';\">' + valueText + '</span>' + \r\n           '<div style=\"width: 100%; max-width: 100px; height: 16px; background: linear-gradient(to right, rgba(' + progress + ') ' + percent + ', rgba(' + background + ') '+ percent + '); border-radius: 5.21053px;\">' + \r\n           '</div>' + \r\n        '</div>';\r\n",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled",
                    "columnExportOption": "onlyVisible"
                  },
                  "_hash": 0.541103810330559,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "displayTimewindow": false,
          "configMode": "advanced",
          "actions": {
            "headerButton": [
              {
                "name": "Add new device",
                "icon": "add",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "customPretty",
                "customHtml": "<form #addDeviceForm=\"ngForm\" [formGroup]=\"addDeviceFormGroup\"\r\n      (ngSubmit)=\"save()\" style=\"width: 480px;\">\r\n  <mat-toolbar fxLayout=\"row\" color=\"primary\">\r\n    <h2>Add device</h2>\r\n    <span fxFlex></span>\r\n    <button mat-icon-button\r\n            (click)=\"cancel()\"\r\n            type=\"button\">\r\n      <mat-icon class=\"material-icons\">close</mat-icon>\r\n    </button>\r\n    \r\n<!--工具栏-->  <!---->\r\n  </mat-toolbar>\r\n  <mat-progress-bar color=\"warn\" mode=\"indeterminate\" *ngIf=\"isLoading$ | async\"></mat-progress-bar>\r\n  <div style=\"height: 4px;\" *ngIf=\"!(isLoading$ | async)\"></div>  \r\n<div mat-dialog-content>\r\n      \r\n<!--IMEI-->\r\n        <div class=\"mat-padding\" fxLayout=\"column\">\r\n            <mat-form-field class=\"mat-block\">\r\n                <mat-label>Dev_EUI</mat-label>\r\n                <input matInput formControlName=\"deviceName\" required>\r\n            </mat-form-field>\r\n\r\n<!--Label-->\r\n            <mat-form-field fxFlex=\"50\" class=\"mat-block\">\r\n                <mat-label>Sensor Name</mat-label>\r\n                <input matInput formControlName=\"deviceLabel\">\r\n            </mat-form-field>\r\n       \r\n        \r\n<!--Device profile-->\r\n               <mat-form-field fxFlex=\"100\" class=\"mat-block\">\r\n                <mat-label>Device Type</mat-label>\r\n                    <mat-select formControlName=\"deviceType\" required>\r\n               <mat-option *ngFor=\"let type of deviceTypes\" [value]=\"type\">{{ type }}</mat-option>\r\n            </mat-select>\r\n</mat-form-field>\r\n     </div>\r\n</div>                     \r\n\r\n\r\n  <div mat-dialog-actions fxLayout=\"row\">\r\n    <span fxFlex></span>\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            style=\"margin-right: 20px;\"\r\n            type=\"submit\"\r\n            [disabled]=\"(isLoading$ | async) || addDeviceForm.invalid || !addDeviceForm.dirty\">\r\n      Create\r\n    </button>\r\n  </div>\r\n</form>\r\n",
                "customCss": "",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet customDialog = $injector.get(widgetContext.servicesMap.get('customDialog'));\nlet deviceService = $injector.get(widgetContext.servicesMap.get('deviceService'));\nlet attributeService = $injector.get(widgetContext.servicesMap.get('attributeService'));\n\nopenAddDeviceDialog();\n//新增设备\nfunction openAddDeviceDialog() {\n    customDialog.customDialog(htmlTemplate, AddDeviceDialogController).subscribe();\n}\n//对话框\nfunction AddDeviceDialogController(instance) {\n    let vm = instance;\n    vm.deviceTypes = [\"Water leakage alarm\", \"Doors status alarm\"];\n    vm.addDeviceFormGroup = vm.fb.group({\n      deviceName: ['', [vm.validators.required]],\n      deviceType:  ['', [vm.validators.required]],\n      deviceLabel: ['',[vm.validators.required]],\n      attributes: vm.fb.group({\n          latitude: [null],\n          longitude: [null]\n      })      \n    });\n//取消    \n    vm.cancel = function() {\n        vm.dialogRef.close(null);\n    };\n//保存为值\n    vm.save = function() {\n        vm.addDeviceFormGroup.markAsPristine();\n        let device = {\n            name: vm.addDeviceFormGroup.get('deviceName').value,\n            type: vm.addDeviceFormGroup.get('deviceType').value,\n            label: vm.addDeviceFormGroup.get('deviceLabel').value,\n        };\n        deviceService.saveDevice(device).subscribe(\n            function (device) {\n                saveAttributes(device.id).subscribe(\n                    function () {\n                        widgetContext.updateAliases();\n                        vm.dialogRef.close(null);\n                    }\n                );\n            }\n        );\n    };\n    \n    function saveAttributes(entityId) {\n        let attributes = vm.addDeviceFormGroup.get('attributes').value;\n        let attributesArray = [];\n        for (let key in attributes) {\n            attributesArray.push({key: key, value: attributes[key]});\n        }\n        if (attributesArray.length > 0) {\n            return attributeService.saveEntityAttributes(entityId, \"SERVER_SCOPE\", attributesArray);\n        } else {\n            return widgetContext.rxjs.of([]);\n        }\n    }\n}",
                "customResources": [],
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "c8bb4b59-432e-bacc-4f89-d6ed50004186"
              }
            ],
            "actionCellButton": [
              {
                "name": "Edit device",
                "icon": "edit",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "customPretty",
                "customHtml": "<form #editDeviceForm=\"ngForm\" [formGroup]=\"editDeviceFormGroup\"\n      (ngSubmit)=\"save()\" style=\"width: 480px;\">\n  <mat-toolbar fxLayout=\"row\" color=\"primary\">\n    <h2>Edit device</h2>\n    <span fxFlex></span>\n    <button mat-icon-button\n            (click)=\"cancel()\"\n            type=\"button\">\n      <mat-icon class=\"material-icons\">close</mat-icon>\n    </button>\n  </mat-toolbar>\n  <mat-progress-bar color=\"warn\" mode=\"indeterminate\" *ngIf=\"isLoading$ | async\">\n  </mat-progress-bar>\n  <div style=\"height: 4px;\" *ngIf=\"!(isLoading$ | async)\"></div>\n  <div mat-dialog-content>\n      \n<!--IMEI-->\n    <div class=\"mat-padding\" fxLayout=\"column\">\n            <mat-form-field class=\"mat-block\">\n                <mat-label>Dev_EUI</mat-label>\n                <input matInput formControlName=\"deviceName\" required>\n            </mat-form-field>\n<!--Label-->\n                <mat-form-field fxFlex=\"50\" class=\"mat-block\">\n                    <mat-label>Sensor Name</mat-label>\n                    <input matInput formControlName=\"deviceLabel\">\n                </mat-form-field>\n<!--Device profile-->\n                <mat-form-field fxFlex=\"100\" class=\"mat-block\">\n                    <mat-label>Device Type</mat-label>\n                    <mat-select formControlName=\"deviceType\" required>\n                    <mat-option *ngFor=\"let type of deviceTypes\" [value]=\"type\">{{ type }}</mat-option>\n                    </mat-select>\n            </mat-form-field>\n    </div>                     \n</div>\n  <div mat-dialog-actions fxLayout=\"row\">\n    <span fxFlex></span>\n    <button mat-button color=\"primary\"\n            type=\"button\"\n            [disabled]=\"(isLoading$ | async)\"\n            (click)=\"cancel()\" cdkFocusInitial>\n      Cancel\n    </button>\n    <button mat-button mat-raised-button color=\"primary\"\n            style=\"margin-right: 20px;\"\n            type=\"submit\"\n            [disabled]=\"(isLoading$ | async) || editDeviceForm.invalid || !editDeviceForm.dirty\">\n      Update\n    </button>\n  </div>\n</form>\n",
                "customCss": "/*=======================================================================*/\n/*==========  There are two examples: for edit and add entity  ==========*/\n/*=======================================================================*/\n/*========================  Edit entity example  ========================*/\n/*=======================================================================*/\n/*\n.edit-entity-form .boolean-value-input {\n    padding-left: 5px;\n}\n\n.edit-entity-form .boolean-value-input .checkbox-label {\n    color: rgba(0,0,0,0.54);\n    font-size: 12px;\n}\n\n.relations-list .header {\n    padding-right: 5px;\n    padding-bottom: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .header .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n    font-size: 12px;\n    font-weight: 700;\n    color: rgba(0, 0, 0, .54);\n    white-space: nowrap;\n}\n\n.relations-list .mat-form-field-infix {\n    width: auto !important;\n}\n\n.relations-list .body {\n    padding-right: 5px;\n    padding-bottom: 15px;\n    padding-left: 5px;\n}\n\n.relations-list .body .row {\n    padding-top: 5px;\n}\n\n.relations-list .body .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .body .md-button {\n    margin: 0;\n}\n*/\n/*========================================================================*/\n/*=========================  Add entity example  =========================*/\n/*========================================================================*/\n/*\n.add-entity-form .boolean-value-input {\n    padding-left: 5px;\n}\n\n.add-entity-form .boolean-value-input .checkbox-label {\n    color: rgba(0,0,0,0.54);\n    font-size: 12px;\n}\n\n.relations-list .header {\n    padding-right: 5px;\n    padding-bottom: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .header .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n    font-size: 12px;\n    font-weight: 700;\n    color: rgba(0, 0, 0, .54);\n    white-space: nowrap;\n}\n\n.relations-list .mat-form-field-infix {\n    width: auto !important;\n}\n\n.relations-list .body {\n    padding-right: 5px;\n    padding-bottom: 15px;\n    padding-left: 5px;\n}\n\n.relations-list .body .row {\n    padding-top: 5px;\n}\n\n.relations-list .body .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .body .md-button {\n    margin: 0;\n}\n*/\n",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet customDialog = $injector.get(widgetContext.servicesMap\n    .get('customDialog'));\nlet deviceService = $injector.get(widgetContext.servicesMap\n    .get('deviceService'));\nlet attributeService = $injector.get(widgetContext\n    .servicesMap.get('attributeService'));\n\nopenEditDeviceDialog();\n\nfunction openEditDeviceDialog() {\n    customDialog.customDialog(htmlTemplate,\n        EditDeviceDialogController).subscribe();\n}\n\nfunction EditDeviceDialogController(instance) {\n    let vm = instance;\n\n    vm.device = null;\n    vm.attributes = {};\n    vm.deviceTypes = [\"Water leakage alarm\", \"Doors status alarm\"];\n    vm.editDeviceFormGroup = vm.fb.group({\n        deviceName: ['', [vm.validators.required]],\n        deviceType: ['', [vm.validators.required]],\n        deviceLabel: ['', [vm.validators.required]],\n\n        attributes: vm.fb.group({\n            latitude: [null],\n            longitude: [null]\n        })\n    });\n\n    vm.cancel = function() {\n        vm.dialogRef.close(null);\n    };\n\n    vm.save = function() {\n        vm.editDeviceFormGroup.markAsPristine();\n        if (vm.editDeviceFormGroup.get('deviceType')\n            .value !== vm.device.type) {\n            delete vm.device.deviceProfileId;\n        }\n        vm.device.name = vm.editDeviceFormGroup.get(\n                'deviceName').value,\n            vm.device.type = vm.editDeviceFormGroup.get(\n                'deviceType').alue,\n            vm.device.label = vm.editDeviceFormGroup\n            .get('deviceLabel').value\n\n        deviceService.saveDevice(vm.device).subscribe(\n            function() {\n                saveAttributes().subscribe(\n                    function() {\n                        widgetContext\n                            .updateAliases();\n                        vm.dialogRef.close(\n                        null);\n                    }\n                );\n            }\n        );\n    };\n\n    getEntityInfo();\n\n    function getEntityInfo() {\n        deviceService.getDevice(entityId.id).subscribe(\n            function(device) {\n                attributeService.getEntityAttributes(\n                        entityId, 'SERVER_SCOPE',\n                        ['latitude', 'longitude'])\n                    .subscribe(\n                        function(attributes) {\n                            for (let i = 0; i <\n                                attributes.length; i++\n                                ) {\n                                vm.attributes[\n                                        attributes[i]\n                                        .key] =\n                                    attributes[i].value;\n                            }\n                            vm.device = device;\n                            vm.editDeviceFormGroup\n                                .patchValue({\n                                    deviceName: vm\n                                        .device\n                                        .name,\n                                    deviceType: vm\n                                        .device\n                                        .type,\n                                    deviceLabel: vm\n                                        .device\n                                        .label,\n                                    attributes: {\n                                        latitude: vm\n                                            .attributes\n                                            .latitude,\n                                        longitude: vm\n                                            .attributes\n                                            .longitude\n                                    }\n                                }, {\n                                    emitEvent: false\n                                });\n                        }\n                    );\n            }\n        );\n    }\n\n    function saveAttributes() {\n        let attributes = vm.editDeviceFormGroup.get(\n            'attributes').value;\n        let attributesArray = [];\n        for (let key in attributes) {\n            attributesArray.push({\n                key: key,\n                value: attributes[key]\n            });\n        }\n        if (attributesArray.length > 0) {\n            return attributeService.saveEntityAttributes(\n                entityId, 'SERVER_SCOPE',\n                attributesArray);\n        } else {\n            return widgetContext.rxjs.of([]);\n        }\n    }\n}",
                "customResources": [],
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "c5e94b42-8206-bc70-2aaa-ed2f2c42333d"
              },
              {
                "name": "Delete device",
                "icon": "delete",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet dialogs = $injector.get(widgetContext.servicesMap.get('dialogs'));\nlet deviceService = $injector.get(widgetContext.servicesMap.get('deviceService'));\n\nopenDeleteDeviceDialog();\n\nfunction openDeleteDeviceDialog() {\n    let title = \"Are you sure you want to delete the device \" + entityName +  \"?\";\n    let content = \"Be careful, after the confirmation, the device and all related data will become unrecoverable!\";\n    dialogs.confirm(title, content, 'Cancel', 'Delete').subscribe(\n        function (result) {\n            if (result) {\n                deleteDevice();\n            }\n        }\n    );\n}\n\nfunction deleteDevice() {\n    deviceService.deleteDevice(entityId.id).subscribe(\n        function () {\n            widgetContext.updateAliases();\n        }\n    );\n}\n",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "267e03a1-53c5-91b5-ae15-a7ebce0cd1b1"
              },
              {
                "name": "Set door opened timeout alarm",
                "icon": "notifications",
                "useShowWidgetActionFunction": true,
                "showWidgetActionFunction": "return data.Type === 'Doors status alarm';\r\n",
                "type": "customPretty",
                "customHtml": "<form #editDeviceForm=\"ngForm\" [formGroup]=\"editDeviceFormGroup\" class=\"edit-device-form\" (ngSubmit)=\"save()\">\n    <mat-toolbar class=\"edit-device-form-toolbar\" fxLayout=\"row\">\n        <h2>Thresholds Configuration</h2>\n        <span fxFlex></span>\n        <button mat-icon-button (click)=\"cancel()\" type=\"button\">\n            <mat-icon class=\"material-icons\">close</mat-icon>\n        </button>\n    </mat-toolbar>\n    <mat-progress-bar color=\"warn\" mode=\"indeterminate\" *ngIf=\"isLoading$ | async\"></mat-progress-bar>\n    <div style=\"height: 4px;\" *ngIf=\"!(isLoading$ | async)\"></div>\n    <div mat-dialog-content fxLayout=\"column\">\n        <fieldset [disabled]=\"(isLoading$ | async) || loading\">\n            <div fxLayout=\"row\" fxLayoutGap=\"8px\" fxLayout.xs=\"column\" fxLayoutGap.xs=\"0\">\n            </div>\n            <div fxLayout=\"row\" fxLayoutGap=\"8px\" fxLayout.xs=\"column\" fxLayoutGap.xs=\"0\">\n            </div>\n            <mat-form-field fxFlex class=\"mat-block\">\n                <mat-label>Open_timeout_limit(s)</mat-label>\n                <input matInput type=\"number\" step=\"1\" formControlName=\"Open_timeout_limit\">\n                <mat-error *ngIf=\"editDeviceFormGroup.get('Open_timeout_limit').hasError('pattern')\">\n                    Invalid value\n                </mat-error>\n            </mat-form-field>\n        </fieldset>\n    </div>\n    <div mat-dialog-actions fxLayout=\"row\" fxLayoutAlign=\"end center\" class=\"edit-device-form-actions\">\n        <button mat-button color=\"primary\"\n                type=\"button\"\n                (click)=\"cancel()\" cdkFocusInitial>\n            Cancel\n        </button>\n        <button mat-button color=\"primary\"\n                type=\"submit\"\n                [disabled]=\"(isLoading$ | async) || loading || editDeviceForm.invalid || !editDeviceForm.dirty\">\n            Save\n        </button>\n    </div>\n</form>",
                "customCss": "/*=======================================================================*/\n/*==========  There are two examples: for edit and add entity  ==========*/\n/*=======================================================================*/\n/*========================  Edit entity example  ========================*/\n/*=======================================================================*/\n/*\n.edit-entity-form .boolean-value-input {\n    padding-left: 5px;\n}\n\n.edit-entity-form .boolean-value-input .checkbox-label {\n    color: rgba(0,0,0,0.54);\n    font-size: 12px;\n}\n\n.relations-list .header {\n    padding-right: 5px;\n    padding-bottom: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .header .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n    font-size: 12px;\n    font-weight: 700;\n    color: rgba(0, 0, 0, .54);\n    white-space: nowrap;\n}\n\n.relations-list .mat-form-field-infix {\n    width: auto !important;\n}\n\n.relations-list .body {\n    padding-right: 5px;\n    padding-bottom: 15px;\n    padding-left: 5px;\n}\n\n.relations-list .body .row {\n    padding-top: 5px;\n}\n\n.relations-list .body .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .body .md-button {\n    margin: 0;\n}\n*/\n/*========================================================================*/\n/*=========================  Add entity example  =========================*/\n/*========================================================================*/\n/*\n.add-entity-form .boolean-value-input {\n    padding-left: 5px;\n}\n\n.add-entity-form .boolean-value-input .checkbox-label {\n    color: rgba(0,0,0,0.54);\n    font-size: 12px;\n}\n\n.relations-list .header {\n    padding-right: 5px;\n    padding-bottom: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .header .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n    font-size: 12px;\n    font-weight: 700;\n    color: rgba(0, 0, 0, .54);\n    white-space: nowrap;\n}\n\n.relations-list .mat-form-field-infix {\n    width: auto !important;\n}\n\n.relations-list .body {\n    padding-right: 5px;\n    padding-bottom: 15px;\n    padding-left: 5px;\n}\n\n.relations-list .body .row {\n    padding-top: 5px;\n}\n\n.relations-list .body .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .body .md-button {\n    margin: 0;\n}\n*/\n",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet customDialog = $injector.get(widgetContext.servicesMap.get('customDialog')),\n    attributeService = $injector.get(widgetContext.servicesMap.get('attributeService'));\n\nopenEditDeviceDialog();\n\nfunction openEditDeviceDialog() {\n    customDialog.customDialog(htmlTemplate, EditDeviceDialogController).subscribe();\n}\n\nfunction EditDeviceDialogController(instance) {\n    let vm = instance;\n\n    vm.attributes = {};\n    let attributesKeys = ['Open_timeout_limit'];\n\n    vm.editDeviceFormGroup = vm.fb.group({\n        Open_timeout_limit: [null, [vm.validators.pattern(/^-?[0-9]+$/)]]\n    });\n\n    getEntityInfo(attributesKeys);\n\n    vm.cancel = function() {\n        vm.dialogRef.close(null);\n    };\n\n    vm.save = () => {\n        vm.loading = true;\n        vm.editDeviceFormGroup.markAsPristine();\n        saveAttributes(entityId).subscribe(\n            () => {\n                vm.loading = false;\n                vm.dialogRef.close(null);\n            },\n            () => {\n                vm.loading = false;\n            }\n        );\n    };\n\n    function getEntityInfo(attributesKeys) {\n        vm.loading = true;\n        attributeService.getEntityAttributes(entityId, 'SERVER_SCOPE', attributesKeys).subscribe(\n            (data) => {\n                if (data.length) {\n                    getEntityAttributes(data);\n                    vm.editDeviceFormGroup.patchValue(vm.attributes, {emitEvent: false});\n                }\n                vm.loading = false;\n            }\n        );\n    }\n\n    function getEntityAttributes(attributes) {\n        for (let i = 0; i < attributes.length; i++) {\n            vm.attributes[attributes[i].key] = attributes[i].value;\n        }\n    }\n\n    function saveAttributes(entityId) {\n        let attributes = vm.editDeviceFormGroup.value;\n        let attributesArray = [];\n        for (let key in attributes) {\n            if (attributes[key] !== vm.attributes[key]) {\n                attributesArray.push({key: key, value: attributes[key]});\n            }\n        }\n        if (attributesArray.length > 0) {\n            return attributeService.saveEntityAttributes(entityId, \"SERVER_SCOPE\", attributesArray);\n        }\n        return widgetContext.rxjs.of([]);\n    }\n}",
                "customResources": [],
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "31f23ef5-6684-420b-8e37-fb8b08ca4532"
              },
              {
                "name": "Email",
                "icon": "email",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "openDashboardState",
                "targetDashboardStateId": "email",
                "setEntityId": true,
                "stateEntityParamName": null,
                "openRightLayout": false,
                "dialogTitle": "",
                "dialogHideDashboardToolbar": true,
                "dialogWidth": null,
                "dialogHeight": null,
                "openInSeparateDialog": true,
                "openInPopover": false,
                "id": "8f3c11c1-bd83-6d9d-22ff-66cf0fa24586"
              }
            ]
          },
          "showTitleIcon": false,
          "titleIcon": "list",
          "iconColor": null,
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "c0477843-0e9d-fe83-aa27-f98e89361619"
      },
      "d6bb3ece-bc81-26de-cdb5-2aa068ff54ae": {
        "typeFullFqn": "system.alarm_widgets.alarms_table",
        "type": "alarm",
        "sizeX": 10.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "realtime": {
              "interval": 1000,
              "timewindowMs": 86400000
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgb(0, 0, 0)",
          "padding": "1px",
          "settings": {
            "alarmsTitle": "Leaking&Opened timeout!!!",
            "enableSelection": false,
            "enableSearch": true,
            "enableSelectColumnDisplay": false,
            "enableFilter": false,
            "enableStickyHeader": true,
            "enableStickyAction": false,
            "showCellActionsMenu": false,
            "reserveSpaceForHiddenAction": "true",
            "displayDetails": true,
            "allowAcknowledgment": false,
            "allowClear": false,
            "allowAssign": false,
            "displayActivity": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "-createdTime",
            "useRowStyleFunction": false,
            "rowStyleFunction": ""
          },
          "title": "Alarms table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "alarmSource": {
            "type": "entity",
            "name": "",
            "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
            "dataKeys": [
              {
                "name": "label",
                "type": "entityField",
                "label": "Name",
                "color": "#FF0000",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": true,
                  "useCellContentFunctionOnExport": false,
                  "cellContentFunction": "var devicetype=alarm.Type;\r\nvar icon = ''; // 用于存放带样式的图标\r\nvar backgroundColor = '#FF0000'; // 背景色（红色）\r\nvar textColor = '#FFFFFF'; // 文字颜色（白色）\r\nvar fontSize = '25px'; // 字体大小\r\nif (devicetype == 'Doors status alarm') {\r\n    icon = '<span style=\"font-size: ' + fontSize +'; \">&#128682;</span>'; // 💧 水滴\r\n} else {\r\n    icon = '<span style=\"font-size: ' + fontSize +';\">&#128167;</span>'; // 🚪 门\r\n}\r\n\r\nreturn  '<div style=\"border-radius: 10px; padding: 5px; '\r\n+'background-color: ' + backgroundColor + '; '//背景色\r\n+'color: ' + textColor + '; '  // 设置文字颜色为白色\r\n+'font-size: ' + fontSize + '; '  // 设置字体大小\r\n+'font-weight: bold; text-align: center;\">' +value+\"\" + icon\r\n+ '</div>';\r\n",
                  "defaultColumnVisibility": "visible",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.3104297401262075,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              },
              {
                "name": "type",
                "type": "entityField",
                "label": "Type",
                "color": "#4caf50",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": false,
                  "useCellContentFunctionOnExport": true,
                  "cellContentFunction": "",
                  "defaultColumnVisibility": "hidden",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.4656687614408881,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              }
            ],
            "alarmFilterConfig": {
              "statusList": [
                "ACTIVE"
              ]
            }
          },
          "alarmsPollingInterval": 5,
          "showTitleIcon": false,
          "titleIcon": "warning",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "widgetStyle": {},
          "displayTimewindow": true,
          "actions": {
            "headerButton": []
          },
          "configMode": "advanced",
          "alarmFilterConfig": {
            "statusList": [
              "ACTIVE"
            ],
            "severityList": [
              "CRITICAL",
              "MAJOR"
            ],
            "typeList": [
              "Opened timeout",
              "Water leaking"
            ],
            "searchPropagatedAlarms": false,
            "assignedToCurrentUser": false,
            "assigneeId": null
          },
          "datasources": [],
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "d6bb3ece-bc81-26de-cdb5-2aa068ff54ae"
      },
      "f6b4a0fc-7e20-d7e3-0fec-709becda4e29": {
        "typeFullFqn": "system.alarm_widgets.alarms_table",
        "type": "alarm",
        "sizeX": 10.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "realtime": {
              "interval": 1000,
              "timewindowMs": 86400000
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgb(0, 0, 0)",
          "padding": "4px",
          "settings": {
            "alarmsTitle": "All opened door",
            "enableSelection": true,
            "enableSearch": true,
            "enableSelectColumnDisplay": false,
            "enableFilter": false,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "showCellActionsMenu": false,
            "reserveSpaceForHiddenAction": "true",
            "displayDetails": true,
            "allowAcknowledgment": false,
            "allowClear": false,
            "allowAssign": false,
            "displayActivity": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "-createdTime",
            "useRowStyleFunction": false,
            "rowStyleFunction": ""
          },
          "title": "Alarms table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "alarmSource": {
            "type": "entity",
            "name": "",
            "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
            "dataKeys": [
              {
                "name": "label",
                "type": "entityField",
                "label": "Name",
                "color": "#2196f3",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": true,
                  "useCellContentFunctionOnExport": true,
                  "cellContentFunction": "var devicetype = alarm.Type;\r\nvar icon = ''; // 用于存放带样式的图标\r\nvar backgroundColor = '#FF8C00';\r\nvar textColor = '#FFFFFF'; \r\nvar fontSize = '25px'; \r\nif (devicetype == 'Doors status alarm') {\r\n    icon = '<span style=\"font-size: ' + fontSize +\r\n        '; \">&#128682;</span>'; // 💧 水滴\r\n} else {\r\n    icon = '<span style=\"font-size: ' + fontSize +\r\n        ';\">&#128167;</span>'; // 🚪 门\r\n}\r\n\r\nreturn '<div style=\"border-radius: 10px; padding: 5px; ' +\r\n    'background-color: ' + backgroundColor + '; ' //背景色\r\n    +\r\n    'color: ' + textColor + '; ' // 设置文字颜色为白色\r\n    +\r\n    'font-size: ' + fontSize + '; ' // 设置字体大小\r\n    +\r\n    'font-weight: bold; text-align: center;\">' + value +\r\n    \"\" + icon +\r\n    '</div>';",
                  "defaultColumnVisibility": "visible",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.07600098333238492,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              },
              {
                "name": "type",
                "type": "entityField",
                "label": "Type",
                "color": "#4caf50",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": false,
                  "useCellContentFunctionOnExport": true,
                  "cellContentFunction": "",
                  "defaultColumnVisibility": "hidden",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.7294462785065285,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              }
            ],
            "alarmFilterConfig": {
              "statusList": [
                "ACTIVE"
              ]
            }
          },
          "alarmsPollingInterval": 5,
          "showTitleIcon": false,
          "titleIcon": "meeting_room",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "30px",
          "titleTooltip": "",
          "widgetStyle": {},
          "displayTimewindow": true,
          "actions": {},
          "configMode": "advanced",
          "alarmFilterConfig": {
            "statusList": [
              "ACTIVE"
            ],
            "severityList": [
              "MAJOR"
            ],
            "typeList": [
              "Opening"
            ],
            "searchPropagatedAlarms": false,
            "assignedToCurrentUser": false,
            "assigneeId": null
          },
          "datasources": [],
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "f6b4a0fc-7e20-d7e3-0fec-709becda4e29"
      },
      "37d7fe36-ccc9-d750-c190-4d0f40ca442a": {
        "typeFullFqn": "system.alarm_widgets.alarms_table",
        "type": "alarm",
        "sizeX": 10.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "realtime": {
              "interval": 1000,
              "timewindowMs": 86400000
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgb(0, 0, 0)",
          "padding": "4px",
          "settings": {
            "alarmsTitle": "Properly",
            "enableSelection": true,
            "enableSearch": true,
            "enableSelectColumnDisplay": false,
            "enableFilter": false,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "showCellActionsMenu": false,
            "reserveSpaceForHiddenAction": "true",
            "displayDetails": true,
            "allowAcknowledgment": false,
            "allowClear": false,
            "allowAssign": false,
            "displayActivity": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "-createdTime",
            "useRowStyleFunction": false,
            "rowStyleFunction": ""
          },
          "title": "Alarms table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "alarmSource": {
            "type": "entity",
            "name": "",
            "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
            "dataKeys": [
              {
                "name": "label",
                "type": "entityField",
                "label": "Name",
                "color": "#2196f3",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": true,
                  "useCellContentFunctionOnExport": true,
                  "cellContentFunction": "var devicetype = alarm.Type;\r\nvar icon = ''; // 用于存放带样式的图标\r\nvar backgroundColor = '#2E8B57';\r\nvar textColor = '#FFFFFF'; \r\nvar fontSize = '25px'; \r\nif (devicetype == 'Doors status alarm') {\r\n    icon = '<span style=\"font-size: ' + fontSize +\r\n        '; \">&#128682;</span>'; // 💧 水滴\r\n} else {\r\n    icon = '<span style=\"font-size: ' + fontSize +\r\n        ';\">&#128167;</span>'; // 🚪 门\r\n}\r\n\r\nreturn '<div style=\"border-radius: 10px; padding: 5px; ' +\r\n    'background-color: ' + backgroundColor + '; ' //背景色\r\n    +\r\n    'color: ' + textColor + '; ' // 设置文字颜色为白色\r\n    +\r\n    'font-size: ' + fontSize + '; ' // 设置字体大小\r\n    +\r\n    'font-weight: bold; text-align: center;\">' + value +\r\n    \"\" + icon +\r\n    '</div>';",
                  "defaultColumnVisibility": "visible",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.2552846806165927,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              },
              {
                "name": "type",
                "type": "entityField",
                "label": "Type",
                "color": "#4caf50",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": false,
                  "useCellContentFunctionOnExport": true,
                  "cellContentFunction": "",
                  "defaultColumnVisibility": "hidden",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.5761464286817441,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              }
            ],
            "alarmFilterConfig": {
              "statusList": [
                "ACTIVE"
              ]
            }
          },
          "alarmsPollingInterval": 5,
          "showTitleIcon": false,
          "titleIcon": "warning",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "widgetStyle": {},
          "displayTimewindow": true,
          "actions": {},
          "configMode": "advanced",
          "alarmFilterConfig": {
            "statusList": [
              "ACTIVE"
            ],
            "severityList": [
              "INDETERMINATE"
            ],
            "typeList": [
              "Closed",
              "No leaks"
            ],
            "searchPropagatedAlarms": false,
            "assignedToCurrentUser": false,
            "assigneeId": null
          },
          "datasources": [],
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "37d7fe36-ccc9-d750-c190-4d0f40ca442a"
      },
      "2728c9c3-10d5-f5aa-60d5-0be09e90f0c0": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "2728c9c3-10d5-f5aa-60d5-0be09e90f0c0"
      },
      "1792e92c-59b8-11db-8fd0-7873c50f3f55": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "1792e92c-59b8-11db-8fd0-7873c50f3f55"
      },
      "b1f4f04d-0e72-efc7-0d54-f9d16c0061e3": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "b1f4f04d-0e72-efc7-0d54-f9d16c0061e3"
      },
      "88bf20ef-d26d-57b0-7859-1db785b63e71": {
        "typeFullFqn": "system.cards.entities_table",
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1741517195903,
                "endTimeMs": 1741603595903
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "entitiesTitle": "All widgets",
            "enableSearch": true,
            "enableSelectColumnDisplay": false,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "showCellActionsMenu": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": false,
            "entityNameColumnTitle": "",
            "displayEntityLabel": false,
            "entityLabelColumnTitle": "",
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "name",
            "useRowStyleFunction": false,
            "rowStyleFunction": "var devicetype =entity.Type;;\r\nvar color = '#fff';\r\nvar label;\r\n//var symbol;\r\nif(devicetype=='Water leakage alarm') {\r\n    color = 'orange';\r\n   return label+\"&#127778\"\r\n}\r\n  else{\r\n    color = '#abab00';\r\n   return label+\"&#127770\"\r\n}"
          },
          "title": "Entities table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#4caf50",
                  "settings": {
                    "customTitle": "",
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "cellStyleFunction": "",
                    "useCellContentFunction": true,
                    "useCellContentFunctionOnExport": true,
                    "cellContentFunction": "var devicetype = entity.Type;;\r\nvar color = '#ff0000';\r\nvar icon = ''; // 用于存放带样式的图标\r\n\r\nif (devicetype == 'Doors status alarm') {\r\n    icon = '<span style=\"font-size: 24px; color: red;\">&#128682;</span>'; \r\n} else {\r\n    icon = '<span style=\"font-size: 24px; color: blue;\">&#128167;</span>'; \r\n}\r\nreturn value + \" \" + icon;\r\n",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled",
                    "columnExportOption": "onlyVisible"
                  },
                  "_hash": 0.9871550662328248,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#4caf50",
                  "settings": {
                    "customTitle": "",
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "cellStyleFunction": "",
                    "useCellContentFunction": false,
                    "useCellContentFunctionOnExport": true,
                    "cellContentFunction": "",
                    "defaultColumnVisibility": "hidden",
                    "columnSelectionToDisplay": "enabled",
                    "columnExportOption": "onlyVisible"
                  },
                  "_hash": 0.5832709765970021,
                  "aggregationType": null,
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "battery",
                  "color": "#f44336",
                  "settings": {
                    "customTitle": "Battery",
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "cellStyleFunction": "",
                    "useCellContentFunction": true,
                    "useCellContentFunctionOnExport": true,
                    "cellContentFunction": "var battery = value; // 获取传感器上传的电池电压值\r\nconst fullBatteryVoltage = 3.1; // 设定满电电压\r\nconst emptyBatteryVoltage = 2.65; // 设定低电量阈值\r\nlet batteryPercentage = ((battery - emptyBatteryVoltage) / (fullBatteryVoltage - emptyBatteryVoltage)) * 100;\r\n\r\n// 限制范围 0% ~ 100%\r\nbatteryPercentage = Math.max(0, Math.min(100, batteryPercentage));\r\n\r\nlet fontWeight = '400';\r\nlet background = '234, 235, 255, 1';\r\nlet progress = '46, 139, 87, 1'; // 绿色（正常电量）\r\nlet textColor = '';\r\n\r\n// 低电量警告\r\nif (battery <= 2.75) { // 2.75V 以下即为低电量\r\n    background = '209, 39, 48, 0.06'; // 低电量背景（淡红）\r\n    progress = '209, 39, 48, 1'; // 低电量进度条（红色）\r\n    fontWeight = '500';\r\n    textColor = '#D12730';\r\n}\r\n\r\nconst percent = batteryPercentage.toFixed(0) + '%'; \r\nconst valueText = `${battery.toFixed(2)}V (${percent})`; // 显示 \"2.9V (80%)\" 这种格式\r\n\r\nreturn '<div style=\"display: flex; justify-content: space-between; align-items: center; margin-right: 10%; min-width: 90px;\">' + \r\n           '<span style=\"padding: 4px; font-weight: ' + fontWeight +'; color: ' + textColor + ';\">' + valueText + '</span>' + \r\n           '<div style=\"width: 100%; max-width: 100px; height: 16px; background: linear-gradient(to right, rgba(' + progress + ') ' + percent + ', rgba(' + background + ') '+ percent + '); border-radius: 5.21053px;\">' + \r\n           '</div>' + \r\n        '</div>';\r\n",
                    "defaultColumnVisibility": "visible",
                    "columnSelectionToDisplay": "enabled",
                    "columnExportOption": "onlyVisible"
                  },
                  "_hash": 0.541103810330559,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "displayTimewindow": false,
          "configMode": "advanced",
          "actions": {
            "headerButton": [
              {
                "name": "Add new device",
                "icon": "add",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "customPretty",
                "customHtml": "<form #addDeviceForm=\"ngForm\" [formGroup]=\"addDeviceFormGroup\"\r\n      (ngSubmit)=\"save()\" style=\"width: 480px;\">\r\n  <mat-toolbar fxLayout=\"row\" color=\"primary\">\r\n    <h2>Add device</h2>\r\n    <span fxFlex></span>\r\n    <button mat-icon-button\r\n            (click)=\"cancel()\"\r\n            type=\"button\">\r\n      <mat-icon class=\"material-icons\">close</mat-icon>\r\n    </button>\r\n    \r\n<!--工具栏-->  <!---->\r\n  </mat-toolbar>\r\n  <mat-progress-bar color=\"warn\" mode=\"indeterminate\" *ngIf=\"isLoading$ | async\"></mat-progress-bar>\r\n  <div style=\"height: 4px;\" *ngIf=\"!(isLoading$ | async)\"></div>  \r\n<div mat-dialog-content>\r\n      \r\n<!--IMEI-->\r\n        <div class=\"mat-padding\" fxLayout=\"column\">\r\n            <mat-form-field class=\"mat-block\">\r\n                <mat-label>Dev_EUI</mat-label>\r\n                <input matInput formControlName=\"deviceName\" required>\r\n            </mat-form-field>\r\n\r\n<!--Label-->\r\n            <mat-form-field fxFlex=\"50\" class=\"mat-block\">\r\n                <mat-label>Sensor Name</mat-label>\r\n                <input matInput formControlName=\"deviceLabel\">\r\n            </mat-form-field>\r\n       \r\n        \r\n<!--Device profile-->\r\n               <mat-form-field fxFlex=\"100\" class=\"mat-block\">\r\n                <mat-label>Device Type</mat-label>\r\n                    <mat-select formControlName=\"deviceType\" required>\r\n               <mat-option *ngFor=\"let type of deviceTypes\" [value]=\"type\">{{ type }}</mat-option>\r\n            </mat-select>\r\n</mat-form-field>\r\n     </div>\r\n</div>                     \r\n\r\n\r\n  <div mat-dialog-actions fxLayout=\"row\">\r\n    <span fxFlex></span>\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            style=\"margin-right: 20px;\"\r\n            type=\"submit\"\r\n            [disabled]=\"(isLoading$ | async) || addDeviceForm.invalid || !addDeviceForm.dirty\">\r\n      Create\r\n    </button>\r\n  </div>\r\n</form>\r\n",
                "customCss": "",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet customDialog = $injector.get(widgetContext.servicesMap.get('customDialog'));\nlet deviceService = $injector.get(widgetContext.servicesMap.get('deviceService'));\nlet attributeService = $injector.get(widgetContext.servicesMap.get('attributeService'));\n\nopenAddDeviceDialog();\n//新增设备\nfunction openAddDeviceDialog() {\n    customDialog.customDialog(htmlTemplate, AddDeviceDialogController).subscribe();\n}\n//对话框\nfunction AddDeviceDialogController(instance) {\n    let vm = instance;\n    vm.deviceTypes = [\"Water leakage alarm\", \"Doors status alarm\"];\n    vm.addDeviceFormGroup = vm.fb.group({\n      deviceName: ['', [vm.validators.required]],\n      deviceType:  ['', [vm.validators.required]],\n      deviceLabel: ['',[vm.validators.required]],\n      attributes: vm.fb.group({\n          latitude: [null],\n          longitude: [null]\n      })      \n    });\n//取消    \n    vm.cancel = function() {\n        vm.dialogRef.close(null);\n    };\n//保存为值\n    vm.save = function() {\n        vm.addDeviceFormGroup.markAsPristine();\n        let device = {\n            name: vm.addDeviceFormGroup.get('deviceName').value,\n            type: vm.addDeviceFormGroup.get('deviceType').value,\n            label: vm.addDeviceFormGroup.get('deviceLabel').value,\n        };\n        deviceService.saveDevice(device).subscribe(\n            function (device) {\n                saveAttributes(device.id).subscribe(\n                    function () {\n                        widgetContext.updateAliases();\n                        vm.dialogRef.close(null);\n                    }\n                );\n            }\n        );\n    };\n    \n    function saveAttributes(entityId) {\n        let attributes = vm.addDeviceFormGroup.get('attributes').value;\n        let attributesArray = [];\n        for (let key in attributes) {\n            attributesArray.push({key: key, value: attributes[key]});\n        }\n        if (attributesArray.length > 0) {\n            return attributeService.saveEntityAttributes(entityId, \"SERVER_SCOPE\", attributesArray);\n        } else {\n            return widgetContext.rxjs.of([]);\n        }\n    }\n}",
                "customResources": [],
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "c8bb4b59-432e-bacc-4f89-d6ed50004186"
              }
            ],
            "actionCellButton": [
              {
                "name": "Edit device",
                "icon": "edit",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "customPretty",
                "customHtml": "<form #editDeviceForm=\"ngForm\" [formGroup]=\"editDeviceFormGroup\"\n      (ngSubmit)=\"save()\" style=\"width: 480px;\">\n  <mat-toolbar fxLayout=\"row\" color=\"primary\">\n    <h2>Edit device</h2>\n    <span fxFlex></span>\n    <button mat-icon-button\n            (click)=\"cancel()\"\n            type=\"button\">\n      <mat-icon class=\"material-icons\">close</mat-icon>\n    </button>\n  </mat-toolbar>\n  <mat-progress-bar color=\"warn\" mode=\"indeterminate\" *ngIf=\"isLoading$ | async\">\n  </mat-progress-bar>\n  <div style=\"height: 4px;\" *ngIf=\"!(isLoading$ | async)\"></div>\n  <div mat-dialog-content>\n      \n<!--IMEI-->\n    <div class=\"mat-padding\" fxLayout=\"column\">\n            <mat-form-field class=\"mat-block\">\n                <mat-label>Dev_EUI</mat-label>\n                <input matInput formControlName=\"deviceName\" required>\n            </mat-form-field>\n<!--Label-->\n                <mat-form-field fxFlex=\"50\" class=\"mat-block\">\n                    <mat-label>Sensor Name</mat-label>\n                    <input matInput formControlName=\"deviceLabel\">\n                </mat-form-field>\n<!--Device profile-->\n                <mat-form-field fxFlex=\"100\" class=\"mat-block\">\n                    <mat-label>Device Type</mat-label>\n                    <mat-select formControlName=\"deviceType\" required>\n                    <mat-option *ngFor=\"let type of deviceTypes\" [value]=\"type\">{{ type }}</mat-option>\n                    </mat-select>\n            </mat-form-field>\n    </div>                     \n</div>\n  <div mat-dialog-actions fxLayout=\"row\">\n    <span fxFlex></span>\n    <button mat-button color=\"primary\"\n            type=\"button\"\n            [disabled]=\"(isLoading$ | async)\"\n            (click)=\"cancel()\" cdkFocusInitial>\n      Cancel\n    </button>\n    <button mat-button mat-raised-button color=\"primary\"\n            style=\"margin-right: 20px;\"\n            type=\"submit\"\n            [disabled]=\"(isLoading$ | async) || editDeviceForm.invalid || !editDeviceForm.dirty\">\n      Update\n    </button>\n  </div>\n</form>\n",
                "customCss": "/*=======================================================================*/\n/*==========  There are two examples: for edit and add entity  ==========*/\n/*=======================================================================*/\n/*========================  Edit entity example  ========================*/\n/*=======================================================================*/\n/*\n.edit-entity-form .boolean-value-input {\n    padding-left: 5px;\n}\n\n.edit-entity-form .boolean-value-input .checkbox-label {\n    color: rgba(0,0,0,0.54);\n    font-size: 12px;\n}\n\n.relations-list .header {\n    padding-right: 5px;\n    padding-bottom: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .header .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n    font-size: 12px;\n    font-weight: 700;\n    color: rgba(0, 0, 0, .54);\n    white-space: nowrap;\n}\n\n.relations-list .mat-form-field-infix {\n    width: auto !important;\n}\n\n.relations-list .body {\n    padding-right: 5px;\n    padding-bottom: 15px;\n    padding-left: 5px;\n}\n\n.relations-list .body .row {\n    padding-top: 5px;\n}\n\n.relations-list .body .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .body .md-button {\n    margin: 0;\n}\n*/\n/*========================================================================*/\n/*=========================  Add entity example  =========================*/\n/*========================================================================*/\n/*\n.add-entity-form .boolean-value-input {\n    padding-left: 5px;\n}\n\n.add-entity-form .boolean-value-input .checkbox-label {\n    color: rgba(0,0,0,0.54);\n    font-size: 12px;\n}\n\n.relations-list .header {\n    padding-right: 5px;\n    padding-bottom: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .header .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n    font-size: 12px;\n    font-weight: 700;\n    color: rgba(0, 0, 0, .54);\n    white-space: nowrap;\n}\n\n.relations-list .mat-form-field-infix {\n    width: auto !important;\n}\n\n.relations-list .body {\n    padding-right: 5px;\n    padding-bottom: 15px;\n    padding-left: 5px;\n}\n\n.relations-list .body .row {\n    padding-top: 5px;\n}\n\n.relations-list .body .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .body .md-button {\n    margin: 0;\n}\n*/\n",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet customDialog = $injector.get(widgetContext.servicesMap\n    .get('customDialog'));\nlet deviceService = $injector.get(widgetContext.servicesMap\n    .get('deviceService'));\nlet attributeService = $injector.get(widgetContext\n    .servicesMap.get('attributeService'));\n\nopenEditDeviceDialog();\n\nfunction openEditDeviceDialog() {\n    customDialog.customDialog(htmlTemplate,\n        EditDeviceDialogController).subscribe();\n}\n\nfunction EditDeviceDialogController(instance) {\n    let vm = instance;\n\n    vm.device = null;\n    vm.attributes = {};\n    vm.deviceTypes = [\"Water leakage alarm\", \"Doors status alarm\"];\n    vm.editDeviceFormGroup = vm.fb.group({\n        deviceName: ['', [vm.validators.required]],\n        deviceType: ['', [vm.validators.required]],\n        deviceLabel: ['', [vm.validators.required]],\n\n        attributes: vm.fb.group({\n            latitude: [null],\n            longitude: [null]\n        })\n    });\n\n    vm.cancel = function() {\n        vm.dialogRef.close(null);\n    };\n\n    vm.save = function() {\n        vm.editDeviceFormGroup.markAsPristine();\n        if (vm.editDeviceFormGroup.get('deviceType')\n            .value !== vm.device.type) {\n            delete vm.device.deviceProfileId;\n        }\n        vm.device.name = vm.editDeviceFormGroup.get(\n                'deviceName').value,\n            vm.device.type = vm.editDeviceFormGroup.get(\n                'deviceType').alue,\n            vm.device.label = vm.editDeviceFormGroup\n            .get('deviceLabel').value\n\n        deviceService.saveDevice(vm.device).subscribe(\n            function() {\n                saveAttributes().subscribe(\n                    function() {\n                        widgetContext\n                            .updateAliases();\n                        vm.dialogRef.close(\n                        null);\n                    }\n                );\n            }\n        );\n    };\n\n    getEntityInfo();\n\n    function getEntityInfo() {\n        deviceService.getDevice(entityId.id).subscribe(\n            function(device) {\n                attributeService.getEntityAttributes(\n                        entityId, 'SERVER_SCOPE',\n                        ['latitude', 'longitude'])\n                    .subscribe(\n                        function(attributes) {\n                            for (let i = 0; i <\n                                attributes.length; i++\n                                ) {\n                                vm.attributes[\n                                        attributes[i]\n                                        .key] =\n                                    attributes[i].value;\n                            }\n                            vm.device = device;\n                            vm.editDeviceFormGroup\n                                .patchValue({\n                                    deviceName: vm\n                                        .device\n                                        .name,\n                                    deviceType: vm\n                                        .device\n                                        .type,\n                                    deviceLabel: vm\n                                        .device\n                                        .label,\n                                    attributes: {\n                                        latitude: vm\n                                            .attributes\n                                            .latitude,\n                                        longitude: vm\n                                            .attributes\n                                            .longitude\n                                    }\n                                }, {\n                                    emitEvent: false\n                                });\n                        }\n                    );\n            }\n        );\n    }\n\n    function saveAttributes() {\n        let attributes = vm.editDeviceFormGroup.get(\n            'attributes').value;\n        let attributesArray = [];\n        for (let key in attributes) {\n            attributesArray.push({\n                key: key,\n                value: attributes[key]\n            });\n        }\n        if (attributesArray.length > 0) {\n            return attributeService.saveEntityAttributes(\n                entityId, 'SERVER_SCOPE',\n                attributesArray);\n        } else {\n            return widgetContext.rxjs.of([]);\n        }\n    }\n}",
                "customResources": [],
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "c5e94b42-8206-bc70-2aaa-ed2f2c42333d"
              },
              {
                "name": "Delete device",
                "icon": "delete",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "custom",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet dialogs = $injector.get(widgetContext.servicesMap.get('dialogs'));\nlet deviceService = $injector.get(widgetContext.servicesMap.get('deviceService'));\n\nopenDeleteDeviceDialog();\n\nfunction openDeleteDeviceDialog() {\n    let title = \"Are you sure you want to delete the device \" + entityName +  \"?\";\n    let content = \"Be careful, after the confirmation, the device and all related data will become unrecoverable!\";\n    dialogs.confirm(title, content, 'Cancel', 'Delete').subscribe(\n        function (result) {\n            if (result) {\n                deleteDevice();\n            }\n        }\n    );\n}\n\nfunction deleteDevice() {\n    deviceService.deleteDevice(entityId.id).subscribe(\n        function () {\n            widgetContext.updateAliases();\n        }\n    );\n}\n",
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "267e03a1-53c5-91b5-ae15-a7ebce0cd1b1"
              },
              {
                "name": "Set door opened timeout alarm",
                "icon": "notifications",
                "useShowWidgetActionFunction": true,
                "showWidgetActionFunction": "return data.Type === 'Doors status alarm';\r\n",
                "type": "customPretty",
                "customHtml": "<form #editDeviceForm=\"ngForm\" [formGroup]=\"editDeviceFormGroup\" class=\"edit-device-form\" (ngSubmit)=\"save()\">\n    <mat-toolbar class=\"edit-device-form-toolbar\" fxLayout=\"row\">\n        <h2>Thresholds Configuration</h2>\n        <span fxFlex></span>\n        <button mat-icon-button (click)=\"cancel()\" type=\"button\">\n            <mat-icon class=\"material-icons\">close</mat-icon>\n        </button>\n    </mat-toolbar>\n    <mat-progress-bar color=\"warn\" mode=\"indeterminate\" *ngIf=\"isLoading$ | async\"></mat-progress-bar>\n    <div style=\"height: 4px;\" *ngIf=\"!(isLoading$ | async)\"></div>\n    <div mat-dialog-content fxLayout=\"column\">\n        <fieldset [disabled]=\"(isLoading$ | async) || loading\">\n            <div fxLayout=\"row\" fxLayoutGap=\"8px\" fxLayout.xs=\"column\" fxLayoutGap.xs=\"0\">\n            </div>\n            <div fxLayout=\"row\" fxLayoutGap=\"8px\" fxLayout.xs=\"column\" fxLayoutGap.xs=\"0\">\n            </div>\n            <mat-form-field fxFlex class=\"mat-block\">\n                <mat-label>Open_timeout_limit(s)</mat-label>\n                <input matInput type=\"number\" step=\"1\" formControlName=\"Open_timeout_limit\">\n                <mat-error *ngIf=\"editDeviceFormGroup.get('Open_timeout_limit').hasError('pattern')\">\n                    Invalid value\n                </mat-error>\n            </mat-form-field>\n        </fieldset>\n    </div>\n    <div mat-dialog-actions fxLayout=\"row\" fxLayoutAlign=\"end center\" class=\"edit-device-form-actions\">\n        <button mat-button color=\"primary\"\n                type=\"button\"\n                (click)=\"cancel()\" cdkFocusInitial>\n            Cancel\n        </button>\n        <button mat-button color=\"primary\"\n                type=\"submit\"\n                [disabled]=\"(isLoading$ | async) || loading || editDeviceForm.invalid || !editDeviceForm.dirty\">\n            Save\n        </button>\n    </div>\n</form>",
                "customCss": "/*=======================================================================*/\n/*==========  There are two examples: for edit and add entity  ==========*/\n/*=======================================================================*/\n/*========================  Edit entity example  ========================*/\n/*=======================================================================*/\n/*\n.edit-entity-form .boolean-value-input {\n    padding-left: 5px;\n}\n\n.edit-entity-form .boolean-value-input .checkbox-label {\n    color: rgba(0,0,0,0.54);\n    font-size: 12px;\n}\n\n.relations-list .header {\n    padding-right: 5px;\n    padding-bottom: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .header .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n    font-size: 12px;\n    font-weight: 700;\n    color: rgba(0, 0, 0, .54);\n    white-space: nowrap;\n}\n\n.relations-list .mat-form-field-infix {\n    width: auto !important;\n}\n\n.relations-list .body {\n    padding-right: 5px;\n    padding-bottom: 15px;\n    padding-left: 5px;\n}\n\n.relations-list .body .row {\n    padding-top: 5px;\n}\n\n.relations-list .body .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .body .md-button {\n    margin: 0;\n}\n*/\n/*========================================================================*/\n/*=========================  Add entity example  =========================*/\n/*========================================================================*/\n/*\n.add-entity-form .boolean-value-input {\n    padding-left: 5px;\n}\n\n.add-entity-form .boolean-value-input .checkbox-label {\n    color: rgba(0,0,0,0.54);\n    font-size: 12px;\n}\n\n.relations-list .header {\n    padding-right: 5px;\n    padding-bottom: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .header .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n    font-size: 12px;\n    font-weight: 700;\n    color: rgba(0, 0, 0, .54);\n    white-space: nowrap;\n}\n\n.relations-list .mat-form-field-infix {\n    width: auto !important;\n}\n\n.relations-list .body {\n    padding-right: 5px;\n    padding-bottom: 15px;\n    padding-left: 5px;\n}\n\n.relations-list .body .row {\n    padding-top: 5px;\n}\n\n.relations-list .body .cell {\n    padding-right: 5px;\n    padding-left: 5px;\n}\n\n.relations-list .body .md-button {\n    margin: 0;\n}\n*/\n",
                "customFunction": "let $injector = widgetContext.$scope.$injector;\nlet customDialog = $injector.get(widgetContext.servicesMap.get('customDialog')),\n    attributeService = $injector.get(widgetContext.servicesMap.get('attributeService'));\n\nopenEditDeviceDialog();\n\nfunction openEditDeviceDialog() {\n    customDialog.customDialog(htmlTemplate, EditDeviceDialogController).subscribe();\n}\n\nfunction EditDeviceDialogController(instance) {\n    let vm = instance;\n\n    vm.attributes = {};\n    let attributesKeys = ['Open_timeout_limit'];\n\n    vm.editDeviceFormGroup = vm.fb.group({\n        Open_timeout_limit: [null, [vm.validators.pattern(/^-?[0-9]+$/)]]\n    });\n\n    getEntityInfo(attributesKeys);\n\n    vm.cancel = function() {\n        vm.dialogRef.close(null);\n    };\n\n    vm.save = () => {\n        vm.loading = true;\n        vm.editDeviceFormGroup.markAsPristine();\n        saveAttributes(entityId).subscribe(\n            () => {\n                vm.loading = false;\n                vm.dialogRef.close(null);\n            },\n            () => {\n                vm.loading = false;\n            }\n        );\n    };\n\n    function getEntityInfo(attributesKeys) {\n        vm.loading = true;\n        attributeService.getEntityAttributes(entityId, 'SERVER_SCOPE', attributesKeys).subscribe(\n            (data) => {\n                if (data.length) {\n                    getEntityAttributes(data);\n                    vm.editDeviceFormGroup.patchValue(vm.attributes, {emitEvent: false});\n                }\n                vm.loading = false;\n            }\n        );\n    }\n\n    function getEntityAttributes(attributes) {\n        for (let i = 0; i < attributes.length; i++) {\n            vm.attributes[attributes[i].key] = attributes[i].value;\n        }\n    }\n\n    function saveAttributes(entityId) {\n        let attributes = vm.editDeviceFormGroup.value;\n        let attributesArray = [];\n        for (let key in attributes) {\n            if (attributes[key] !== vm.attributes[key]) {\n                attributesArray.push({key: key, value: attributes[key]});\n            }\n        }\n        if (attributesArray.length > 0) {\n            return attributeService.saveEntityAttributes(entityId, \"SERVER_SCOPE\", attributesArray);\n        }\n        return widgetContext.rxjs.of([]);\n    }\n}",
                "customResources": [],
                "openInSeparateDialog": false,
                "openInPopover": false,
                "id": "31f23ef5-6684-420b-8e37-fb8b08ca4532"
              },
              {
                "name": "Email",
                "icon": "email",
                "useShowWidgetActionFunction": null,
                "showWidgetActionFunction": "return true;",
                "type": "openDashboardState",
                "targetDashboardStateId": "email",
                "setEntityId": true,
                "stateEntityParamName": null,
                "openRightLayout": false,
                "dialogTitle": "",
                "dialogHideDashboardToolbar": true,
                "dialogWidth": null,
                "dialogHeight": null,
                "openInSeparateDialog": true,
                "openInPopover": false,
                "id": "8f3c11c1-bd83-6d9d-22ff-66cf0fa24586"
              }
            ]
          },
          "showTitleIcon": false,
          "titleIcon": "list",
          "iconColor": null,
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "88bf20ef-d26d-57b0-7859-1db785b63e71"
      },
      "4e32279a-05c2-5e12-b3aa-743ce88c9e3f": {
        "typeFullFqn": "system.alarm_widgets.alarms_table",
        "type": "alarm",
        "sizeX": 10.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "realtime": {
              "interval": 1000,
              "timewindowMs": 86400000
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgb(0, 0, 0)",
          "padding": "1px",
          "settings": {
            "alarmsTitle": "Leaking&Opened timeout!!!",
            "enableSelection": false,
            "enableSearch": true,
            "enableSelectColumnDisplay": false,
            "enableFilter": false,
            "enableStickyHeader": true,
            "enableStickyAction": false,
            "showCellActionsMenu": false,
            "reserveSpaceForHiddenAction": "true",
            "displayDetails": true,
            "allowAcknowledgment": false,
            "allowClear": false,
            "allowAssign": false,
            "displayActivity": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "-createdTime",
            "useRowStyleFunction": false,
            "rowStyleFunction": ""
          },
          "title": "Alarms table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "alarmSource": {
            "type": "entity",
            "name": "",
            "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
            "dataKeys": [
              {
                "name": "label",
                "type": "entityField",
                "label": "Name",
                "color": "#FF0000",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": true,
                  "useCellContentFunctionOnExport": false,
                  "cellContentFunction": "var devicetype=alarm.Type;\r\nvar icon = ''; // 用于存放带样式的图标\r\nvar backgroundColor = '#FF0000'; // 背景色（红色）\r\nvar textColor = '#FFFFFF'; // 文字颜色（白色）\r\nvar fontSize = '25px'; // 字体大小\r\nif (devicetype == 'Doors status alarm') {\r\n    icon = '<span style=\"font-size: ' + fontSize +'; \">&#128682;</span>'; // 💧 水滴\r\n} else {\r\n    icon = '<span style=\"font-size: ' + fontSize +';\">&#128167;</span>'; // 🚪 门\r\n}\r\n\r\nreturn  '<div style=\"border-radius: 10px; padding: 5px; '\r\n+'background-color: ' + backgroundColor + '; '//背景色\r\n+'color: ' + textColor + '; '  // 设置文字颜色为白色\r\n+'font-size: ' + fontSize + '; '  // 设置字体大小\r\n+'font-weight: bold; text-align: center;\">' +value+\"\" + icon\r\n+ '</div>';\r\n",
                  "defaultColumnVisibility": "visible",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.3104297401262075,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              },
              {
                "name": "type",
                "type": "entityField",
                "label": "Type",
                "color": "#4caf50",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": false,
                  "useCellContentFunctionOnExport": true,
                  "cellContentFunction": "",
                  "defaultColumnVisibility": "hidden",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.4656687614408881,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              }
            ],
            "alarmFilterConfig": {
              "statusList": [
                "ACTIVE"
              ]
            }
          },
          "alarmsPollingInterval": 5,
          "showTitleIcon": false,
          "titleIcon": "warning",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "widgetStyle": {},
          "displayTimewindow": true,
          "actions": {
            "headerButton": []
          },
          "configMode": "advanced",
          "alarmFilterConfig": {
            "statusList": [
              "ACTIVE"
            ],
            "severityList": [
              "CRITICAL",
              "MAJOR"
            ],
            "typeList": [
              "Opened timeout",
              "Water leaking"
            ],
            "searchPropagatedAlarms": false,
            "assignedToCurrentUser": false,
            "assigneeId": null
          },
          "datasources": [],
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "4e32279a-05c2-5e12-b3aa-743ce88c9e3f"
      },
      "9ed36d43-bc47-b7c8-6a06-870e31f73e1a": {
        "typeFullFqn": "system.alarm_widgets.alarms_table",
        "type": "alarm",
        "sizeX": 10.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "realtime": {
              "interval": 1000,
              "timewindowMs": 86400000
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgb(0, 0, 0)",
          "padding": "4px",
          "settings": {
            "alarmsTitle": "All opened door",
            "enableSelection": true,
            "enableSearch": true,
            "enableSelectColumnDisplay": false,
            "enableFilter": false,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "showCellActionsMenu": false,
            "reserveSpaceForHiddenAction": "true",
            "displayDetails": true,
            "allowAcknowledgment": false,
            "allowClear": false,
            "allowAssign": false,
            "displayActivity": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "-createdTime",
            "useRowStyleFunction": false,
            "rowStyleFunction": ""
          },
          "title": "Alarms table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "alarmSource": {
            "type": "entity",
            "name": "",
            "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
            "dataKeys": [
              {
                "name": "label",
                "type": "entityField",
                "label": "Name",
                "color": "#2196f3",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": true,
                  "useCellContentFunctionOnExport": true,
                  "cellContentFunction": "var devicetype = alarm.Type;\r\nvar icon = ''; // 用于存放带样式的图标\r\nvar backgroundColor = '#FF8C00';\r\nvar textColor = '#FFFFFF'; \r\nvar fontSize = '25px'; \r\nif (devicetype == 'Doors status alarm') {\r\n    icon = '<span style=\"font-size: ' + fontSize +\r\n        '; \">&#128682;</span>'; // 💧 水滴\r\n} else {\r\n    icon = '<span style=\"font-size: ' + fontSize +\r\n        ';\">&#128167;</span>'; // 🚪 门\r\n}\r\n\r\nreturn '<div style=\"border-radius: 10px; padding: 5px; ' +\r\n    'background-color: ' + backgroundColor + '; ' //背景色\r\n    +\r\n    'color: ' + textColor + '; ' // 设置文字颜色为白色\r\n    +\r\n    'font-size: ' + fontSize + '; ' // 设置字体大小\r\n    +\r\n    'font-weight: bold; text-align: center;\">' + value +\r\n    \"\" + icon +\r\n    '</div>';",
                  "defaultColumnVisibility": "visible",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.07600098333238492,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              },
              {
                "name": "type",
                "type": "entityField",
                "label": "Type",
                "color": "#4caf50",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": false,
                  "useCellContentFunctionOnExport": true,
                  "cellContentFunction": "",
                  "defaultColumnVisibility": "hidden",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.7294462785065285,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              }
            ],
            "alarmFilterConfig": {
              "statusList": [
                "ACTIVE"
              ]
            }
          },
          "alarmsPollingInterval": 5,
          "showTitleIcon": false,
          "titleIcon": "meeting_room",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "30px",
          "titleTooltip": "",
          "widgetStyle": {},
          "displayTimewindow": true,
          "actions": {},
          "configMode": "advanced",
          "alarmFilterConfig": {
            "statusList": [
              "ACTIVE"
            ],
            "severityList": [
              "MAJOR"
            ],
            "typeList": [
              "Opening"
            ],
            "searchPropagatedAlarms": false,
            "assignedToCurrentUser": false,
            "assigneeId": null
          },
          "datasources": [],
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "9ed36d43-bc47-b7c8-6a06-870e31f73e1a"
      },
      "3b3d5a52-2f78-9eb8-1989-06798938b471": {
        "typeFullFqn": "system.alarm_widgets.alarms_table",
        "type": "alarm",
        "sizeX": 10.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "realtime": {
              "interval": 1000,
              "timewindowMs": 86400000
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgb(0, 0, 0)",
          "padding": "4px",
          "settings": {
            "alarmsTitle": "Properly",
            "enableSelection": true,
            "enableSearch": true,
            "enableSelectColumnDisplay": false,
            "enableFilter": false,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "showCellActionsMenu": false,
            "reserveSpaceForHiddenAction": "true",
            "displayDetails": true,
            "allowAcknowledgment": false,
            "allowClear": false,
            "allowAssign": false,
            "displayActivity": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "-createdTime",
            "useRowStyleFunction": false,
            "rowStyleFunction": ""
          },
          "title": "Alarms table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "alarmSource": {
            "type": "entity",
            "name": "",
            "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
            "dataKeys": [
              {
                "name": "label",
                "type": "entityField",
                "label": "Name",
                "color": "#2196f3",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": true,
                  "useCellContentFunctionOnExport": true,
                  "cellContentFunction": "var devicetype = alarm.Type;\r\nvar icon = ''; // 用于存放带样式的图标\r\nvar backgroundColor = '#2E8B57';\r\nvar textColor = '#FFFFFF'; \r\nvar fontSize = '25px'; \r\nif (devicetype == 'Doors status alarm') {\r\n    icon = '<span style=\"font-size: ' + fontSize +\r\n        '; \">&#128682;</span>'; // 💧 水滴\r\n} else {\r\n    icon = '<span style=\"font-size: ' + fontSize +\r\n        ';\">&#128167;</span>'; // 🚪 门\r\n}\r\n\r\nreturn '<div style=\"border-radius: 10px; padding: 5px; ' +\r\n    'background-color: ' + backgroundColor + '; ' //背景色\r\n    +\r\n    'color: ' + textColor + '; ' // 设置文字颜色为白色\r\n    +\r\n    'font-size: ' + fontSize + '; ' // 设置字体大小\r\n    +\r\n    'font-weight: bold; text-align: center;\">' + value +\r\n    \"\" + icon +\r\n    '</div>';",
                  "defaultColumnVisibility": "visible",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.2552846806165927,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              },
              {
                "name": "type",
                "type": "entityField",
                "label": "Type",
                "color": "#4caf50",
                "settings": {
                  "customTitle": "",
                  "columnWidth": "0px",
                  "useCellStyleFunction": false,
                  "cellStyleFunction": "",
                  "useCellContentFunction": false,
                  "useCellContentFunctionOnExport": true,
                  "cellContentFunction": "",
                  "defaultColumnVisibility": "hidden",
                  "columnSelectionToDisplay": "enabled",
                  "columnExportOption": "onlyVisible"
                },
                "_hash": 0.5761464286817441,
                "aggregationType": null,
                "units": null,
                "decimals": null,
                "funcBody": null,
                "usePostProcessing": null,
                "postFuncBody": null
              }
            ],
            "alarmFilterConfig": {
              "statusList": [
                "ACTIVE"
              ]
            }
          },
          "alarmsPollingInterval": 5,
          "showTitleIcon": false,
          "titleIcon": "warning",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "widgetStyle": {},
          "displayTimewindow": true,
          "actions": {},
          "configMode": "advanced",
          "alarmFilterConfig": {
            "statusList": [
              "ACTIVE"
            ],
            "severityList": [
              "INDETERMINATE"
            ],
            "typeList": [
              "Closed",
              "No leaks"
            ],
            "searchPropagatedAlarms": false,
            "assignedToCurrentUser": false,
            "assigneeId": null
          },
          "datasources": [],
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true,
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": ""
        },
        "row": 0,
        "col": 0,
        "id": "3b3d5a52-2f78-9eb8-1989-06798938b471"
      },
      "37e9366d-6755-afd4-084d-f8450d829ca1": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "37e9366d-6755-afd4-084d-f8450d829ca1"
      },
      "de6bd02f-3b5f-2ed7-64a8-4527fd08addc": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "de6bd02f-3b5f-2ed7-64a8-4527fd08addc"
      },
      "1dc73306-fa93-3b7c-e1a8-0df273b95c3a": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "distance",
                  "type": "timeseries",
                  "label": "Distance",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "1dc73306-fa93-3b7c-e1a8-0df273b95c3a"
      },
      "54cbdb10-ca4f-7fe6-5328-b2ca3a793af8": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "Temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "layout": "horizontal",
            "autoScale": true,
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500",
              "lineHeight": "1.5"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "thermostat",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": {
                "advancedMode": false,
                "range": [
                  {
                    "from": 0,
                    "to": 50,
                    "color": "#80C32C"
                  },
                  {
                    "from": 50,
                    "to": 100,
                    "color": "#FFA600"
                  },
                  {
                    "from": 100,
                    "to": 150,
                    "color": "#F36900"
                  },
                  {
                    "from": 150,
                    "to": 200,
                    "color": "#D81838"
                  },
                  {
                    "from": 200,
                    "to": 300,
                    "color": "#8D268C"
                  },
                  {
                    "from": 300,
                    "to": null,
                    "color": "#6F113A"
                  }
                ]
              }
            },
            "valueFont": {
              "family": "Roboto",
              "size": 36,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500",
              "lineHeight": "100%"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": {
                "advancedMode": false,
                "range": [
                  {
                    "from": 0,
                    "to": 50,
                    "color": "#80C32C"
                  },
                  {
                    "from": 50,
                    "to": 100,
                    "color": "#FFA600"
                  },
                  {
                    "from": 100,
                    "to": 150,
                    "color": "#F36900"
                  },
                  {
                    "from": 150,
                    "to": 200,
                    "color": "#D81838"
                  },
                  {
                    "from": 200,
                    "to": 300,
                    "color": "#8D268C"
                  },
                  {
                    "from": 300,
                    "to": null,
                    "color": "#6F113A"
                  }
                ]
              }
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false,
              "auto": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500",
              "lineHeight": "1.33"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "padding": ""
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "advanced",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "54cbdb10-ca4f-7fe6-5328-b2ca3a793af8"
      },
      "090e0ba1-c147-69d9-273c-bfbdf91f3c16": {
        "typeFullFqn": "system.cards.entities_table",
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1766570223167,
                "endTimeMs": 1766656623167
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": false,
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "name",
            "useRowStyleFunction": false,
            "entitiesTitle": "Entities"
          },
          "title": "Entities table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8805216645350932
                },
                {
                  "name": "Temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.769017559254571,
                  "decimals": 0
                },
                {
                  "name": "ADC",
                  "type": "timeseries",
                  "label": "ADC",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.6097781617536594,
                  "decimals": 0
                },
                {
                  "name": "distance",
                  "type": "timeseries",
                  "label": "distance",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.09019769281447065,
                  "decimals": 0
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "displayTimewindow": false,
          "configMode": "basic",
          "actions": {},
          "showTitleIcon": false,
          "titleIcon": "list",
          "iconColor": null,
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "090e0ba1-c147-69d9-273c-bfbdf91f3c16"
      },
      "018bfa29-d82f-fea1-9bec-1c372c1ea53d": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "018bfa29-d82f-fea1-9bec-1c372c1ea53d"
      },
      "4c32b04d-ab4a-7618-bea3-7f0349f103a9": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "4c32b04d-ab4a-7618-bea3-7f0349f103a9"
      },
      "793caac8-1bbf-bf33-88b0-f825e2def353": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "793caac8-1bbf-bf33-88b0-f825e2def353"
      },
      "41c4c0ae-03c7-967d-f3f0-c6600ee5987a": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "distance",
                  "type": "timeseries",
                  "label": "Distance",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "41c4c0ae-03c7-967d-f3f0-c6600ee5987a"
      },
      "b61ca809-1fec-eb8e-a3f9-717125c5f345": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "Temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "layout": "horizontal",
            "autoScale": true,
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500",
              "lineHeight": "1.5"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "thermostat",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": {
                "advancedMode": false,
                "range": [
                  {
                    "from": 0,
                    "to": 50,
                    "color": "#80C32C"
                  },
                  {
                    "from": 50,
                    "to": 100,
                    "color": "#FFA600"
                  },
                  {
                    "from": 100,
                    "to": 150,
                    "color": "#F36900"
                  },
                  {
                    "from": 150,
                    "to": 200,
                    "color": "#D81838"
                  },
                  {
                    "from": 200,
                    "to": 300,
                    "color": "#8D268C"
                  },
                  {
                    "from": 300,
                    "to": null,
                    "color": "#6F113A"
                  }
                ]
              }
            },
            "valueFont": {
              "family": "Roboto",
              "size": 36,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500",
              "lineHeight": "100%"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": {
                "advancedMode": false,
                "range": [
                  {
                    "from": 0,
                    "to": 50,
                    "color": "#80C32C"
                  },
                  {
                    "from": 50,
                    "to": 100,
                    "color": "#FFA600"
                  },
                  {
                    "from": 100,
                    "to": 150,
                    "color": "#F36900"
                  },
                  {
                    "from": 150,
                    "to": 200,
                    "color": "#D81838"
                  },
                  {
                    "from": 200,
                    "to": 300,
                    "color": "#8D268C"
                  },
                  {
                    "from": 300,
                    "to": null,
                    "color": "#6F113A"
                  }
                ]
              }
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false,
              "auto": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500",
              "lineHeight": "1.33"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "padding": ""
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "advanced",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "b61ca809-1fec-eb8e-a3f9-717125c5f345"
      },
      "a23f15ce-a59b-cf91-dce6-7270dc0ef6cf": {
        "typeFullFqn": "system.cards.entities_table",
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1766570223167,
                "endTimeMs": 1766656623167
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": false,
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "name",
            "useRowStyleFunction": false,
            "entitiesTitle": "Entities"
          },
          "title": "Entities table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8805216645350932
                },
                {
                  "name": "Temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.769017559254571,
                  "decimals": 0
                },
                {
                  "name": "ADC",
                  "type": "timeseries",
                  "label": "ADC",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.6097781617536594,
                  "decimals": 0
                },
                {
                  "name": "distance",
                  "type": "timeseries",
                  "label": "distance",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.09019769281447065,
                  "decimals": 0
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "displayTimewindow": false,
          "configMode": "basic",
          "actions": {},
          "showTitleIcon": false,
          "titleIcon": "list",
          "iconColor": null,
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "a23f15ce-a59b-cf91-dce6-7270dc0ef6cf"
      },
      "5a4afcc9-dc30-abde-334d-ce33188491ca": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "5a4afcc9-dc30-abde-334d-ce33188491ca"
      },
      "03698dcb-0ed2-b4a0-1052-29b5e3134c04": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "03698dcb-0ed2-b4a0-1052-29b5e3134c04"
      },
      "e4e265ff-028d-95f8-4211-02d01fdf7fff": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "e4e265ff-028d-95f8-4211-02d01fdf7fff"
      },
      "b54990ef-2ad2-c56b-e434-d1941de9faee": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "distance",
                  "type": "timeseries",
                  "label": "Distance",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "horizontal",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "mdi:map-marker-distance",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 36,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 50,
                  "color": "#80C32C"
                },
                {
                  "from": 50,
                  "to": 100,
                  "color": "#FFA600"
                },
                {
                  "from": 100,
                  "to": 150,
                  "color": "#F36900"
                },
                {
                  "from": 150,
                  "to": 200,
                  "color": "#D81838"
                },
                {
                  "from": 200,
                  "to": 300,
                  "color": "#8D268C"
                },
                {
                  "from": 300,
                  "to": null,
                  "color": "#6F113A"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "b54990ef-2ad2-c56b-e434-d1941de9faee"
      },
      "89f6798e-71a7-ce20-1bea-af398a0181b7": {
        "typeFullFqn": "system.horizontal_air_quality_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 1,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "Temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.749783330964271,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728349365074,
                "endTimeMs": 1728435765074
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "layout": "horizontal",
            "autoScale": true,
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500",
              "lineHeight": "1.5"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "thermostat",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": {
                "advancedMode": false,
                "range": [
                  {
                    "from": 0,
                    "to": 50,
                    "color": "#80C32C"
                  },
                  {
                    "from": 50,
                    "to": 100,
                    "color": "#FFA600"
                  },
                  {
                    "from": 100,
                    "to": 150,
                    "color": "#F36900"
                  },
                  {
                    "from": 150,
                    "to": 200,
                    "color": "#D81838"
                  },
                  {
                    "from": 200,
                    "to": 300,
                    "color": "#8D268C"
                  },
                  {
                    "from": 300,
                    "to": null,
                    "color": "#6F113A"
                  }
                ]
              }
            },
            "valueFont": {
              "family": "Roboto",
              "size": 36,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500",
              "lineHeight": "100%"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": {
                "advancedMode": false,
                "range": [
                  {
                    "from": 0,
                    "to": 50,
                    "color": "#80C32C"
                  },
                  {
                    "from": 50,
                    "to": 100,
                    "color": "#FFA600"
                  },
                  {
                    "from": 100,
                    "to": 150,
                    "color": "#F36900"
                  },
                  {
                    "from": 150,
                    "to": 200,
                    "color": "#D81838"
                  },
                  {
                    "from": 200,
                    "to": 300,
                    "color": "#8D268C"
                  },
                  {
                    "from": 300,
                    "to": null,
                    "color": "#6F113A"
                  }
                ]
              }
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false,
              "auto": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500",
              "lineHeight": "1.33"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "padding": ""
          },
          "title": "Horizontal air quality card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "cm",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "advanced",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "89f6798e-71a7-ce20-1bea-af398a0181b7"
      },
      "f963724b-721f-0a38-73b2-216f921069ed": {
        "typeFullFqn": "system.cards.entities_table",
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1766570223167,
                "endTimeMs": 1766656623167
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": false,
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "name",
            "useRowStyleFunction": false,
            "entitiesTitle": "Entities"
          },
          "title": "Entities table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8805216645350932
                },
                {
                  "name": "Temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.769017559254571,
                  "decimals": 0
                },
                {
                  "name": "ADC",
                  "type": "timeseries",
                  "label": "ADC",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.6097781617536594,
                  "decimals": 0
                },
                {
                  "name": "distance",
                  "type": "timeseries",
                  "label": "distance",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.09019769281447065,
                  "decimals": 0
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "displayTimewindow": false,
          "configMode": "basic",
          "actions": {},
          "showTitleIcon": false,
          "titleIcon": "list",
          "iconColor": null,
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "f963724b-721f-0a38-73b2-216f921069ed"
      },
      "aab05e7a-bfb8-6e80-55c9-7aad9eec0486": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "aab05e7a-bfb8-6e80-55c9-7aad9eec0486"
      },
      "6c399bf0-448c-b318-4b1e-547522d4143f": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "6c399bf0-448c-b318-4b1e-547522d4143f"
      },
      "4fb8a8ac-7160-cb7f-6ff1-baa7447f3a45": {
        "typeFullFqn": "system.cards.entities_table",
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1766570223167,
                "endTimeMs": 1766656623167
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": false,
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "name",
            "useRowStyleFunction": false,
            "entitiesTitle": "Entities"
          },
          "title": "Entities table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8805216645350932
                },
                {
                  "name": "Tem Red",
                  "type": "timeseries",
                  "label": "Tem Red",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.769017559254571,
                  "decimals": 0,
                  "aggregationType": "NONE",
                  "units": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "ADC",
                  "type": "timeseries",
                  "label": "ADC",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.6097781617536594,
                  "decimals": 0
                },
                {
                  "name": "distance",
                  "type": "timeseries",
                  "label": "distance",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.09019769281447065,
                  "decimals": 0
                },
                {
                  "name": "Battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#607d8b",
                  "settings": {},
                  "_hash": 0.46849477630103975,
                  "decimals": 0
                },
                {
                  "name": "Tem White",
                  "type": "timeseries",
                  "label": "Tem White",
                  "color": "#9c27b0",
                  "settings": {},
                  "_hash": 0.8605262399922923,
                  "decimals": 0
                },
                {
                  "name": "Tem Black",
                  "type": "timeseries",
                  "label": "Tem Black",
                  "color": "#8bc34a",
                  "settings": {},
                  "_hash": 0.48737322704687436,
                  "decimals": 0
                },
                {
                  "name": "Alarm Flag",
                  "type": "timeseries",
                  "label": "Alarm Flag",
                  "color": "#3f51b5",
                  "settings": {},
                  "_hash": 0.9240748982928738,
                  "decimals": 0
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "displayTimewindow": false,
          "configMode": "basic",
          "actions": {},
          "showTitleIcon": false,
          "titleIcon": "list",
          "iconColor": null,
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "4fb8a8ac-7160-cb7f-6ff1-baa7447f3a45"
      },
      "8c464724-1f0f-a52e-8b9d-d0ac2aaf1a38": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "8c464724-1f0f-a52e-8b9d-d0ac2aaf1a38"
      },
      "a50526c8-01c2-0c15-65cb-c42236684683": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "a50526c8-01c2-0c15-65cb-c42236684683"
      },
      "a3665d9f-6eac-5dfd-0b47-7501d5345260": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "a3665d9f-6eac-5dfd-0b47-7501d5345260"
      },
      "c05609de-8904-edce-663a-257e6fe834a3": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "c05609de-8904-edce-663a-257e6fe834a3"
      },
      "2631bf10-4728-9e71-1ed6-be4c568fc493": {
        "typeFullFqn": "system.cards.entities_table",
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1766570223167,
                "endTimeMs": 1766656623167
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": false,
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "name",
            "useRowStyleFunction": false,
            "entitiesTitle": "Entities"
          },
          "title": "Entities table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8805216645350932
                },
                {
                  "name": "Tem Red",
                  "type": "timeseries",
                  "label": "Tem Red",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.769017559254571,
                  "decimals": 0,
                  "aggregationType": "NONE",
                  "units": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "ADC",
                  "type": "timeseries",
                  "label": "ADC",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.6097781617536594,
                  "decimals": 0
                },
                {
                  "name": "distance",
                  "type": "timeseries",
                  "label": "distance",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.09019769281447065,
                  "decimals": 0
                },
                {
                  "name": "Battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#607d8b",
                  "settings": {},
                  "_hash": 0.46849477630103975,
                  "decimals": 0
                },
                {
                  "name": "Tem White",
                  "type": "timeseries",
                  "label": "Tem White",
                  "color": "#9c27b0",
                  "settings": {},
                  "_hash": 0.8605262399922923,
                  "decimals": 0
                },
                {
                  "name": "Tem Black",
                  "type": "timeseries",
                  "label": "Tem Black",
                  "color": "#8bc34a",
                  "settings": {},
                  "_hash": 0.48737322704687436,
                  "decimals": 0
                },
                {
                  "name": "Alarm Flag",
                  "type": "timeseries",
                  "label": "Alarm Flag",
                  "color": "#3f51b5",
                  "settings": {},
                  "_hash": 0.9240748982928738,
                  "decimals": 0
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "displayTimewindow": false,
          "configMode": "basic",
          "actions": {},
          "showTitleIcon": false,
          "titleIcon": "list",
          "iconColor": null,
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "2631bf10-4728-9e71-1ed6-be4c568fc493"
      },
      "4d439b53-4373-f9c1-3577-5243265fb242": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "4d439b53-4373-f9c1-3577-5243265fb242"
      },
      "77e1d391-1b06-12a2-005f-696e87e4fb50": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "77e1d391-1b06-12a2-005f-696e87e4fb50"
      },
      "68ac98db-fb5c-d9cd-200a-7abb5a967d1f": {
        "typeFullFqn": "system.indoor_temperature_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.3582315445263524,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292758555,
                "endTimeMs": 1728379158555
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "menu",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "family": "Roboto",
              "size": 52,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": null,
                  "to": 18,
                  "color": "#234CC7"
                },
                {
                  "from": 18,
                  "to": 24,
                  "color": "#3FA71A"
                },
                {
                  "from": 24,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Temperature card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "V",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "68ac98db-fb5c-d9cd-200a-7abb5a967d1f"
      },
      "5f9e3409-89d4-c4c1-0a3f-90df9e111a01": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "signal",
                  "type": "timeseries",
                  "label": "Signal",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.14684829880367234,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292832041,
                "endTimeMs": 1728379232041
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "show_chart",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "dB",
          "decimals": 3,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "5f9e3409-89d4-c4c1-0a3f-90df9e111a01"
      },
      "b174d732-2d36-51b2-2bf2-9565366c067a": {
        "typeFullFqn": "system.cards.entities_table",
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1766570223167,
                "endTimeMs": 1766656623167
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": false,
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "name",
            "useRowStyleFunction": false,
            "entitiesTitle": "Entities"
          },
          "title": "Entities table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8805216645350932
                },
                {
                  "name": "Tem Red",
                  "type": "timeseries",
                  "label": "Tem Red",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.769017559254571,
                  "decimals": 0,
                  "aggregationType": "NONE",
                  "units": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "ADC",
                  "type": "timeseries",
                  "label": "ADC",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.6097781617536594,
                  "decimals": 0
                },
                {
                  "name": "distance",
                  "type": "timeseries",
                  "label": "distance",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.09019769281447065,
                  "decimals": 0
                },
                {
                  "name": "Battery",
                  "type": "timeseries",
                  "label": "Battery",
                  "color": "#607d8b",
                  "settings": {},
                  "_hash": 0.46849477630103975,
                  "decimals": 0
                },
                {
                  "name": "Tem White",
                  "type": "timeseries",
                  "label": "Tem White",
                  "color": "#9c27b0",
                  "settings": {},
                  "_hash": 0.8605262399922923,
                  "decimals": 0
                },
                {
                  "name": "Tem Black",
                  "type": "timeseries",
                  "label": "Tem Black",
                  "color": "#8bc34a",
                  "settings": {},
                  "_hash": 0.48737322704687436,
                  "decimals": 0
                },
                {
                  "name": "Alarm Flag",
                  "type": "timeseries",
                  "label": "Alarm Flag",
                  "color": "#3f51b5",
                  "settings": {},
                  "_hash": 0.9240748982928738,
                  "decimals": 0
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "displayTimewindow": false,
          "configMode": "basic",
          "actions": {},
          "showTitleIcon": false,
          "titleIcon": "list",
          "iconColor": null,
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "b174d732-2d36-51b2-2bf2-9565366c067a"
      },
      "398ab999-5019-8f6f-b50c-e4519c101271": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "398ab999-5019-8f6f-b50c-e4519c101271"
      },
      "7543b93e-fd68-dfcb-c5d9-eda2a6e05bd6": {
        "typeFullFqn": "system.scheduling.scheduler_events",
        "type": "static",
        "sizeX": 7.5,
        "sizeY": 4.5,
        "config": {
          "timewindow": {
            "realtime": {
              "interval": 1000,
              "timewindowMs": 86400000
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": false,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "title": "Timed Irrigation",
            "displayCreatedTime": false,
            "displayType": true,
            "displayCustomer": true,
            "displayPagination": true,
            "defaultPageSize": 20,
            "pageStepCount": 3,
            "pageStepIncrement": 10,
            "defaultSortOrder": "name",
            "enabledViews": "both",
            "noDataDisplayMessage": "",
            "forceDefaultEventType": "",
            "customEventTypes": []
          },
          "title": "Scheduler events",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "datasources": [
            {
              "type": "static",
              "name": "Simulated",
              "dataKeys": [
                {
                  "name": "f(x)",
                  "type": "function",
                  "label": "Sin",
                  "color": "#2196f3",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "cellStyleFunction": "",
                    "useCellContentFunction": false,
                    "cellContentFunction": ""
                  },
                  "_hash": 0.472295003170325,
                  "funcBody": "return Math.round(1000*Math.sin(time/5000));"
                },
                {
                  "name": "f(x)",
                  "type": "function",
                  "label": "Cos",
                  "color": "#4caf50",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "cellStyleFunction": "",
                    "useCellContentFunction": false,
                    "cellContentFunction": ""
                  },
                  "_hash": 0.8926244886945558,
                  "funcBody": "return Math.round(1000*Math.cos(time/5000));"
                },
                {
                  "name": "f(x)",
                  "type": "function",
                  "label": "Random",
                  "color": "#f44336",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "cellStyleFunction": "",
                    "useCellContentFunction": false,
                    "cellContentFunction": ""
                  },
                  "_hash": 0.6401141393938932,
                  "funcBody": "var value = prevValue + Math.random() * 100 - 50;\nvar multiplier = Math.pow(10, 2 || 0);\nvar value = Math.round(value * multiplier) / multiplier;\nif (value < -1000) {\n\tvalue = -1000;\n} else if (value > 1000) {\n\tvalue = 1000;\n}\nreturn value;"
                }
              ]
            }
          ],
          "enableDataExport": true,
          "widgetStyle": {},
          "actions": {}
        },
        "row": 0,
        "col": 0,
        "id": "7543b93e-fd68-dfcb-c5d9-eda2a6e05bd6"
      },
      "749c72a1-ae2c-660b-dd96-a94e0065fc44": {
        "typeFullFqn": "system.toggle_button",
        "type": "rpc",
        "sizeX": 4,
        "sizeY": 2,
        "config": {
          "showTitle": true,
          "backgroundColor": "#ffffff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "initialState": {
              "action": "GET_TIME_SERIES",
              "defaultValue": false,
              "executeRpc": {
                "method": "getState",
                "requestTimeout": 5000,
                "requestPersistent": false,
                "persistentPollingInterval": 1000
              },
              "getAttribute": {
                "key": "RO1_status",
                "scope": "SERVER_SCOPE"
              },
              "getTimeSeries": {
                "key": "RO1_status"
              },
              "getAlarmStatus": {
                "severityList": null,
                "typeList": null
              },
              "dataToValue": {
                "type": "NONE",
                "compareToValue": "ON",
                "dataToValueFunction": "/* Should return boolean value */\nreturn data;"
              }
            },
            "checkState": {
              "action": "SET_ATTRIBUTE",
              "executeRpc": {
                "method": "",
                "requestTimeout": 5000,
                "requestPersistent": false,
                "persistentPollingInterval": 1000
              },
              "setAttribute": {
                "key": "RO1_status",
                "scope": "SERVER_SCOPE"
              },
              "putTimeSeries": {
                "key": "RO1_status"
              },
              "valueToData": {
                "type": "CONSTANT",
                "constantValue": 30101,
                "valueToDataFunction": "/* Convert input boolean value to RPC parameters or attribute/time-series value */\nreturn \"030101\";"
              }
            },
            "uncheckState": {
              "action": "SET_ATTRIBUTE",
              "executeRpc": {
                "method": "setState",
                "requestTimeout": 5000,
                "requestPersistent": false,
                "persistentPollingInterval": 1000
              },
              "setAttribute": {
                "scope": "SERVER_SCOPE",
                "key": "RO1_status"
              },
              "putTimeSeries": {
                "key": "RO1_status"
              },
              "valueToData": {
                "type": "CONSTANT",
                "constantValue": 30000,
                "valueToDataFunction": "/* Convert input boolean value to RPC parameters or attribute/time-series value */ \n return \"030101\";"
              }
            },
            "disabledState": {
              "action": "DO_NOTHING",
              "defaultValue": false,
              "getAttribute": {
                "key": "state",
                "scope": null
              },
              "getTimeSeries": {
                "key": "state"
              },
              "getAlarmStatus": {
                "severityList": null,
                "typeList": null
              },
              "dataToValue": {
                "type": "NONE",
                "compareToValue": true,
                "dataToValueFunction": "/* Should return boolean value */\nreturn data;"
              }
            },
            "autoScale": true,
            "horizontalFill": true,
            "verticalFill": false,
            "checkedAppearance": {
              "type": "outlined",
              "autoScale": true,
              "showLabel": true,
              "label": "Opened",
              "showIcon": true,
              "icon": "mdi:lock-open-variant",
              "iconSize": 24,
              "iconSizeUnit": "px",
              "mainColor": "#198038",
              "backgroundColor": "#FFFFFF",
              "customStyle": {
                "enabled": null,
                "hovered": null,
                "pressed": null,
                "activated": null,
                "disabled": null
              },
              "borderRadius": "4px"
            },
            "uncheckedAppearance": {
              "type": "filled",
              "autoScale": true,
              "showLabel": true,
              "label": "Closed",
              "showIcon": true,
              "icon": "lock",
              "iconSize": 24,
              "iconSizeUnit": "px",
              "mainColor": "#D12730",
              "backgroundColor": "#FFFFFF",
              "customStyle": {
                "enabled": null,
                "hovered": null,
                "pressed": null,
                "activated": null,
                "disabled": null
              },
              "borderRadius": "4px"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "padding": "12px"
          },
          "title": "1",
          "dropShadow": true,
          "enableFullscreen": false,
          "widgetStyle": {},
          "actions": {},
          "widgetCss": "",
          "noDataDisplayMessage": "",
          "titleFont": {
            "size": 16,
            "sizeUnit": "px",
            "family": "Roboto",
            "weight": "500",
            "style": null,
            "lineHeight": "1.6"
          },
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "pageSize": 1024,
          "titleIcon": "home",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "configMode": "advanced",
          "targetDevice": {
            "type": "entity",
            "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc"
          },
          "titleColor": null,
          "borderRadius": null,
          "datasources": [],
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "749c72a1-ae2c-660b-dd96-a94e0065fc44"
      },
      "8979938f-bca7-3b6e-6ba2-75f4bca4b3ca": {
        "typeFullFqn": "system.toggle_button",
        "type": "rpc",
        "sizeX": 4,
        "sizeY": 2,
        "config": {
          "showTitle": true,
          "backgroundColor": "#ffffff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "initialState": {
              "action": "GET_TIME_SERIES",
              "defaultValue": false,
              "executeRpc": {
                "method": "getState",
                "requestTimeout": 5000,
                "requestPersistent": false,
                "persistentPollingInterval": 1000
              },
              "getAttribute": {
                "key": "RO1_status",
                "scope": "SERVER_SCOPE"
              },
              "getTimeSeries": {
                "key": "RO1_status"
              },
              "getAlarmStatus": {
                "severityList": null,
                "typeList": null
              },
              "dataToValue": {
                "type": "NONE",
                "compareToValue": "ON",
                "dataToValueFunction": "/* Should return boolean value */\nreturn data;"
              }
            },
            "checkState": {
              "action": "SET_ATTRIBUTE",
              "executeRpc": {
                "method": "",
                "requestTimeout": 5000,
                "requestPersistent": false,
                "persistentPollingInterval": 1000
              },
              "setAttribute": {
                "key": "RO1_status",
                "scope": "SERVER_SCOPE"
              },
              "putTimeSeries": {
                "key": "RO1_status"
              },
              "valueToData": {
                "type": "CONSTANT",
                "constantValue": 30101,
                "valueToDataFunction": "/* Convert input boolean value to RPC parameters or attribute/time-series value */\nreturn \"030101\";"
              }
            },
            "uncheckState": {
              "action": "SET_ATTRIBUTE",
              "executeRpc": {
                "method": "setState",
                "requestTimeout": 5000,
                "requestPersistent": false,
                "persistentPollingInterval": 1000
              },
              "setAttribute": {
                "scope": "SERVER_SCOPE",
                "key": "RO1_status"
              },
              "putTimeSeries": {
                "key": "RO1_status"
              },
              "valueToData": {
                "type": "CONSTANT",
                "constantValue": 30000,
                "valueToDataFunction": "/* Convert input boolean value to RPC parameters or attribute/time-series value */ \n return \"030101\";"
              }
            },
            "disabledState": {
              "action": "DO_NOTHING",
              "defaultValue": false,
              "getAttribute": {
                "key": "state",
                "scope": null
              },
              "getTimeSeries": {
                "key": "state"
              },
              "getAlarmStatus": {
                "severityList": null,
                "typeList": null
              },
              "dataToValue": {
                "type": "NONE",
                "compareToValue": true,
                "dataToValueFunction": "/* Should return boolean value */\nreturn data;"
              }
            },
            "autoScale": true,
            "horizontalFill": true,
            "verticalFill": false,
            "checkedAppearance": {
              "type": "outlined",
              "autoScale": true,
              "showLabel": true,
              "label": "Opened",
              "showIcon": true,
              "icon": "mdi:lock-open-variant",
              "iconSize": 24,
              "iconSizeUnit": "px",
              "mainColor": "#198038",
              "backgroundColor": "#FFFFFF",
              "customStyle": {
                "enabled": null,
                "hovered": null,
                "pressed": null,
                "activated": null,
                "disabled": null
              },
              "borderRadius": "4px"
            },
            "uncheckedAppearance": {
              "type": "filled",
              "autoScale": true,
              "showLabel": true,
              "label": "Closed",
              "showIcon": true,
              "icon": "lock",
              "iconSize": 24,
              "iconSizeUnit": "px",
              "mainColor": "#D12730",
              "backgroundColor": "#FFFFFF",
              "customStyle": {
                "enabled": null,
                "hovered": null,
                "pressed": null,
                "activated": null,
                "disabled": null
              },
              "borderRadius": "4px"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "padding": "12px"
          },
          "title": "2",
          "dropShadow": true,
          "enableFullscreen": false,
          "widgetStyle": {},
          "actions": {},
          "widgetCss": "",
          "noDataDisplayMessage": "",
          "titleFont": {
            "size": 16,
            "sizeUnit": "px",
            "family": "Roboto",
            "weight": "500",
            "style": null,
            "lineHeight": "1.6"
          },
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "pageSize": 1024,
          "titleIcon": "home",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "configMode": "advanced",
          "targetDevice": {
            "type": "entity",
            "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc"
          },
          "titleColor": null,
          "borderRadius": null,
          "datasources": [],
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "8979938f-bca7-3b6e-6ba2-75f4bca4b3ca"
      },
      "b6c262d1-92ef-61f7-c7b1-6d726919655e": {
        "typeFullFqn": "system.toggle_button",
        "type": "rpc",
        "sizeX": 4,
        "sizeY": 2,
        "config": {
          "showTitle": true,
          "backgroundColor": "#ffffff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "initialState": {
              "action": "GET_TIME_SERIES",
              "defaultValue": false,
              "executeRpc": {
                "method": "getState",
                "requestTimeout": 5000,
                "requestPersistent": false,
                "persistentPollingInterval": 1000
              },
              "getAttribute": {
                "key": "RO1_status",
                "scope": "SERVER_SCOPE"
              },
              "getTimeSeries": {
                "key": "RO1_status"
              },
              "getAlarmStatus": {
                "severityList": null,
                "typeList": null
              },
              "dataToValue": {
                "type": "NONE",
                "compareToValue": "ON",
                "dataToValueFunction": "/* Should return boolean value */\nreturn data;"
              }
            },
            "checkState": {
              "action": "SET_ATTRIBUTE",
              "executeRpc": {
                "method": "",
                "requestTimeout": 5000,
                "requestPersistent": false,
                "persistentPollingInterval": 1000
              },
              "setAttribute": {
                "key": "RO1_status",
                "scope": "SERVER_SCOPE"
              },
              "putTimeSeries": {
                "key": "RO1_status"
              },
              "valueToData": {
                "type": "CONSTANT",
                "constantValue": 30101,
                "valueToDataFunction": "/* Convert input boolean value to RPC parameters or attribute/time-series value */\nreturn \"030101\";"
              }
            },
            "uncheckState": {
              "action": "SET_ATTRIBUTE",
              "executeRpc": {
                "method": "setState",
                "requestTimeout": 5000,
                "requestPersistent": false,
                "persistentPollingInterval": 1000
              },
              "setAttribute": {
                "scope": "SERVER_SCOPE",
                "key": "RO1_status"
              },
              "putTimeSeries": {
                "key": "RO1_status"
              },
              "valueToData": {
                "type": "CONSTANT",
                "constantValue": 30000,
                "valueToDataFunction": "/* Convert input boolean value to RPC parameters or attribute/time-series value */ \n return \"030101\";"
              }
            },
            "disabledState": {
              "action": "DO_NOTHING",
              "defaultValue": false,
              "getAttribute": {
                "key": "state",
                "scope": null
              },
              "getTimeSeries": {
                "key": "state"
              },
              "getAlarmStatus": {
                "severityList": null,
                "typeList": null
              },
              "dataToValue": {
                "type": "NONE",
                "compareToValue": true,
                "dataToValueFunction": "/* Should return boolean value */\nreturn data;"
              }
            },
            "autoScale": true,
            "horizontalFill": true,
            "verticalFill": false,
            "checkedAppearance": {
              "type": "outlined",
              "autoScale": true,
              "showLabel": true,
              "label": "Opened",
              "showIcon": true,
              "icon": "mdi:lock-open-variant",
              "iconSize": 24,
              "iconSizeUnit": "px",
              "mainColor": "#198038",
              "backgroundColor": "#FFFFFF",
              "customStyle": {
                "enabled": null,
                "hovered": null,
                "pressed": null,
                "activated": null,
                "disabled": null
              },
              "borderRadius": "4px"
            },
            "uncheckedAppearance": {
              "type": "filled",
              "autoScale": true,
              "showLabel": true,
              "label": "Closed",
              "showIcon": true,
              "icon": "lock",
              "iconSize": 24,
              "iconSizeUnit": "px",
              "mainColor": "#D12730",
              "backgroundColor": "#FFFFFF",
              "customStyle": {
                "enabled": null,
                "hovered": null,
                "pressed": null,
                "activated": null,
                "disabled": null
              },
              "borderRadius": "4px"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "padding": "12px"
          },
          "title": "3",
          "dropShadow": true,
          "enableFullscreen": false,
          "widgetStyle": {},
          "actions": {},
          "widgetCss": "",
          "noDataDisplayMessage": "",
          "titleFont": {
            "size": 16,
            "sizeUnit": "px",
            "family": "Roboto",
            "weight": "500",
            "style": null,
            "lineHeight": "1.6"
          },
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "pageSize": 1024,
          "titleIcon": "home",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "configMode": "advanced",
          "targetDevice": {
            "type": "entity",
            "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc"
          },
          "titleColor": null,
          "borderRadius": null,
          "datasources": [],
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "b6c262d1-92ef-61f7-c7b1-6d726919655e"
      },
      "95ef58c9-71aa-7c71-4af5-aec492b153d1": {
        "typeFullFqn": "system.cards.markdown_card",
        "type": "latest",
        "sizeX": 5,
        "sizeY": 3.5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.6092212781131938
                },
                {
                  "name": "label",
                  "type": "entityField",
                  "label": "Label",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.8832828073446122
                },
                {
                  "name": "type",
                  "type": "entityField",
                  "label": "Type",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.5916430662259646
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728435683787,
                "endTimeMs": 1728522083787
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "useMarkdownTextFunction": false,
            "markdownTextPattern": "### <font color=#FF0000>Device information</font> \n - **Device IMEI**: <font color=#5F9EA0>${Name}</font> .\n - **Device Label**: <font color=#5F9EA0>${Label}</font> .\n - **Device Type**: <font color=#5F9EA0>${Type}</font> .",
            "markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
            "applyDefaultMarkdownStyle": true,
            "markdownCss": ""
          },
          "title": "Markdown/HTML Card",
          "showTitleIcon": false,
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "titleTooltip": "",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "showLegend": false,
          "useDashboardTimewindow": true,
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "95ef58c9-71aa-7c71-4af5-aec492b153d1"
      },
      "a7f5d5b1-0c6b-9228-8b3d-58d8a85af214": {
        "typeFullFqn": "system.scheduling.scheduler_events",
        "type": "static",
        "sizeX": 7.5,
        "sizeY": 4.5,
        "config": {
          "timewindow": {
            "realtime": {
              "interval": 1000,
              "timewindowMs": 86400000
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": false,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "title": "Timed Irrigation",
            "displayCreatedTime": false,
            "displayType": true,
            "displayCustomer": true,
            "displayPagination": true,
            "defaultPageSize": 20,
            "pageStepCount": 3,
            "pageStepIncrement": 10,
            "defaultSortOrder": "name",
            "enabledViews": "both",
            "noDataDisplayMessage": "",
            "forceDefaultEventType": "",
            "customEventTypes": []
          },
          "title": "Scheduler events",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "datasources": [
            {
              "type": "static",
              "name": "Simulated",
              "dataKeys": [
                {
                  "name": "f(x)",
                  "type": "function",
                  "label": "Sin",
                  "color": "#2196f3",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "cellStyleFunction": "",
                    "useCellContentFunction": false,
                    "cellContentFunction": ""
                  },
                  "_hash": 0.472295003170325,
                  "funcBody": "return Math.round(1000*Math.sin(time/5000));"
                },
                {
                  "name": "f(x)",
                  "type": "function",
                  "label": "Cos",
                  "color": "#4caf50",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "cellStyleFunction": "",
                    "useCellContentFunction": false,
                    "cellContentFunction": ""
                  },
                  "_hash": 0.8926244886945558,
                  "funcBody": "return Math.round(1000*Math.cos(time/5000));"
                },
                {
                  "name": "f(x)",
                  "type": "function",
                  "label": "Random",
                  "color": "#f44336",
                  "settings": {
                    "columnWidth": "0px",
                    "useCellStyleFunction": false,
                    "cellStyleFunction": "",
                    "useCellContentFunction": false,
                    "cellContentFunction": ""
                  },
                  "_hash": 0.6401141393938932,
                  "funcBody": "var value = prevValue + Math.random() * 100 - 50;\nvar multiplier = Math.pow(10, 2 || 0);\nvar value = Math.round(value * multiplier) / multiplier;\nif (value < -1000) {\n\tvalue = -1000;\n} else if (value > 1000) {\n\tvalue = 1000;\n}\nreturn value;"
                }
              ]
            }
          ],
          "enableDataExport": true,
          "widgetStyle": {},
          "actions": {}
        },
        "row": 0,
        "col": 0,
        "id": "a7f5d5b1-0c6b-9228-8b3d-58d8a85af214"
      },
      "48788b4b-d350-9901-ef2f-314c7d8cecc8": {
        "typeFullFqn": "system.toggle_button",
        "type": "rpc",
        "sizeX": 4,
        "sizeY": 2,
        "config": {
          "showTitle": true,
          "backgroundColor": "#ffffff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "initialState": {
              "action": "GET_TIME_SERIES",
              "defaultValue": false,
              "executeRpc": {
                "method": "getState",
                "requestTimeout": 5000,
                "requestPersistent": false,
                "persistentPollingInterval": 1000
              },
              "getAttribute": {
                "key": "RO1_status",
                "scope": "SERVER_SCOPE"
              },
              "getTimeSeries": {
                "key": "RO1_status"
              },
              "getAlarmStatus": {
                "severityList": null,
                "typeList": null
              },
              "dataToValue": {
                "type": "NONE",
                "compareToValue": "ON",
                "dataToValueFunction": "/* Should return boolean value */\nreturn data;"
              }
            },
            "checkState": {
              "action": "SET_ATTRIBUTE",
              "executeRpc": {
                "method": "",
                "requestTimeout": 5000,
                "requestPersistent": false,
                "persistentPollingInterval": 1000
              },
              "setAttribute": {
                "key": "RO1_status",
                "scope": "SERVER_SCOPE"
              },
              "putTimeSeries": {
                "key": "RO1_status"
              },
              "valueToData": {
                "type": "CONSTANT",
                "constantValue": 30101,
                "valueToDataFunction": "/* Convert input boolean value to RPC parameters or attribute/time-series value */\nreturn \"030101\";"
              }
            },
            "uncheckState": {
              "action": "SET_ATTRIBUTE",
              "executeRpc": {
                "method": "setState",
                "requestTimeout": 5000,
                "requestPersistent": false,
                "persistentPollingInterval": 1000
              },
              "setAttribute": {
                "scope": "SERVER_SCOPE",
                "key": "RO1_status"
              },
              "putTimeSeries": {
                "key": "RO1_status"
              },
              "valueToData": {
                "type": "CONSTANT",
                "constantValue": 30000,
                "valueToDataFunction": "/* Convert input boolean value to RPC parameters or attribute/time-series value */ \n return \"030101\";"
              }
            },
            "disabledState": {
              "action": "DO_NOTHING",
              "defaultValue": false,
              "getAttribute": {
                "key": "state",
                "scope": null
              },
              "getTimeSeries": {
                "key": "state"
              },
              "getAlarmStatus": {
                "severityList": null,
                "typeList": null
              },
              "dataToValue": {
                "type": "NONE",
                "compareToValue": true,
                "dataToValueFunction": "/* Should return boolean value */\nreturn data;"
              }
            },
            "autoScale": true,
            "horizontalFill": true,
            "verticalFill": false,
            "checkedAppearance": {
              "type": "outlined",
              "autoScale": true,
              "showLabel": true,
              "label": "Opened",
              "showIcon": true,
              "icon": "mdi:lock-open-variant",
              "iconSize": 24,
              "iconSizeUnit": "px",
              "mainColor": "#198038",
              "backgroundColor": "#FFFFFF",
              "customStyle": {
                "enabled": null,
                "hovered": null,
                "pressed": null,
                "activated": null,
                "disabled": null
              },
              "borderRadius": "4px"
            },
            "uncheckedAppearance": {
              "type": "filled",
              "autoScale": true,
              "showLabel": true,
              "label": "Closed",
              "showIcon": true,
              "icon": "lock",
              "iconSize": 24,
              "iconSizeUnit": "px",
              "mainColor": "#D12730",
              "backgroundColor": "#FFFFFF",
              "customStyle": {
                "enabled": null,
                "hovered": null,
                "pressed": null,
                "activated": null,
                "disabled": null
              },
              "borderRadius": "4px"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "padding": "12px"
          },
          "title": "1",
          "dropShadow": true,
          "enableFullscreen": false,
          "widgetStyle": {},
          "actions": {},
          "widgetCss": "",
          "noDataDisplayMessage": "",
          "titleFont": {
            "size": 16,
            "sizeUnit": "px",
            "family": "Roboto",
            "weight": "500",
            "style": null,
            "lineHeight": "1.6"
          },
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "pageSize": 1024,
          "titleIcon": "home",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "configMode": "advanced",
          "targetDevice": {
            "type": "entity",
            "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc"
          },
          "titleColor": null,
          "borderRadius": null,
          "datasources": [],
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "48788b4b-d350-9901-ef2f-314c7d8cecc8"
      },
      "9ce89254-1332-762c-ada3-7dc85caed131": {
        "typeFullFqn": "system.toggle_button",
        "type": "rpc",
        "sizeX": 4,
        "sizeY": 2,
        "config": {
          "showTitle": true,
          "backgroundColor": "#ffffff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "initialState": {
              "action": "GET_TIME_SERIES",
              "defaultValue": false,
              "executeRpc": {
                "method": "getState",
                "requestTimeout": 5000,
                "requestPersistent": false,
                "persistentPollingInterval": 1000
              },
              "getAttribute": {
                "key": "RO1_status",
                "scope": "SERVER_SCOPE"
              },
              "getTimeSeries": {
                "key": "RO1_status"
              },
              "getAlarmStatus": {
                "severityList": null,
                "typeList": null
              },
              "dataToValue": {
                "type": "NONE",
                "compareToValue": "ON",
                "dataToValueFunction": "/* Should return boolean value */\nreturn data;"
              }
            },
            "checkState": {
              "action": "SET_ATTRIBUTE",
              "executeRpc": {
                "method": "",
                "requestTimeout": 5000,
                "requestPersistent": false,
                "persistentPollingInterval": 1000
              },
              "setAttribute": {
                "key": "RO1_status",
                "scope": "SERVER_SCOPE"
              },
              "putTimeSeries": {
                "key": "RO1_status"
              },
              "valueToData": {
                "type": "CONSTANT",
                "constantValue": 30101,
                "valueToDataFunction": "/* Convert input boolean value to RPC parameters or attribute/time-series value */\nreturn \"030101\";"
              }
            },
            "uncheckState": {
              "action": "SET_ATTRIBUTE",
              "executeRpc": {
                "method": "setState",
                "requestTimeout": 5000,
                "requestPersistent": false,
                "persistentPollingInterval": 1000
              },
              "setAttribute": {
                "scope": "SERVER_SCOPE",
                "key": "RO1_status"
              },
              "putTimeSeries": {
                "key": "RO1_status"
              },
              "valueToData": {
                "type": "CONSTANT",
                "constantValue": 30000,
                "valueToDataFunction": "/* Convert input boolean value to RPC parameters or attribute/time-series value */ \n return \"030101\";"
              }
            },
            "disabledState": {
              "action": "DO_NOTHING",
              "defaultValue": false,
              "getAttribute": {
                "key": "state",
                "scope": null
              },
              "getTimeSeries": {
                "key": "state"
              },
              "getAlarmStatus": {
                "severityList": null,
                "typeList": null
              },
              "dataToValue": {
                "type": "NONE",
                "compareToValue": true,
                "dataToValueFunction": "/* Should return boolean value */\nreturn data;"
              }
            },
            "autoScale": true,
            "horizontalFill": true,
            "verticalFill": false,
            "checkedAppearance": {
              "type": "outlined",
              "autoScale": true,
              "showLabel": true,
              "label": "Opened",
              "showIcon": true,
              "icon": "mdi:lock-open-variant",
              "iconSize": 24,
              "iconSizeUnit": "px",
              "mainColor": "#198038",
              "backgroundColor": "#FFFFFF",
              "customStyle": {
                "enabled": null,
                "hovered": null,
                "pressed": null,
                "activated": null,
                "disabled": null
              },
              "borderRadius": "4px"
            },
            "uncheckedAppearance": {
              "type": "filled",
              "autoScale": true,
              "showLabel": true,
              "label": "Closed",
              "showIcon": true,
              "icon": "lock",
              "iconSize": 24,
              "iconSizeUnit": "px",
              "mainColor": "#D12730",
              "backgroundColor": "#FFFFFF",
              "customStyle": {
                "enabled": null,
                "hovered": null,
                "pressed": null,
                "activated": null,
                "disabled": null
              },
              "borderRadius": "4px"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "padding": "12px"
          },
          "title": "2",
          "dropShadow": true,
          "enableFullscreen": false,
          "widgetStyle": {},
          "actions": {},
          "widgetCss": "",
          "noDataDisplayMessage": "",
          "titleFont": {
            "size": 16,
            "sizeUnit": "px",
            "family": "Roboto",
            "weight": "500",
            "style": null,
            "lineHeight": "1.6"
          },
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "pageSize": 1024,
          "titleIcon": "home",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "configMode": "advanced",
          "targetDevice": {
            "type": "entity",
            "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc"
          },
          "titleColor": null,
          "borderRadius": null,
          "datasources": [],
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "9ce89254-1332-762c-ada3-7dc85caed131"
      },
      "f9793b84-1eda-f125-3155-62923fa3018a": {
        "typeFullFqn": "system.toggle_button",
        "type": "rpc",
        "sizeX": 4,
        "sizeY": 2,
        "config": {
          "showTitle": true,
          "backgroundColor": "#ffffff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "initialState": {
              "action": "GET_TIME_SERIES",
              "defaultValue": false,
              "executeRpc": {
                "method": "getState",
                "requestTimeout": 5000,
                "requestPersistent": false,
                "persistentPollingInterval": 1000
              },
              "getAttribute": {
                "key": "RO1_status",
                "scope": "SERVER_SCOPE"
              },
              "getTimeSeries": {
                "key": "RO1_status"
              },
              "getAlarmStatus": {
                "severityList": null,
                "typeList": null
              },
              "dataToValue": {
                "type": "NONE",
                "compareToValue": "ON",
                "dataToValueFunction": "/* Should return boolean value */\nreturn data;"
              }
            },
            "checkState": {
              "action": "SET_ATTRIBUTE",
              "executeRpc": {
                "method": "",
                "requestTimeout": 5000,
                "requestPersistent": false,
                "persistentPollingInterval": 1000
              },
              "setAttribute": {
                "key": "RO1_status",
                "scope": "SERVER_SCOPE"
              },
              "putTimeSeries": {
                "key": "RO1_status"
              },
              "valueToData": {
                "type": "CONSTANT",
                "constantValue": 30101,
                "valueToDataFunction": "/* Convert input boolean value to RPC parameters or attribute/time-series value */\nreturn \"030101\";"
              }
            },
            "uncheckState": {
              "action": "SET_ATTRIBUTE",
              "executeRpc": {
                "method": "setState",
                "requestTimeout": 5000,
                "requestPersistent": false,
                "persistentPollingInterval": 1000
              },
              "setAttribute": {
                "scope": "SERVER_SCOPE",
                "key": "RO1_status"
              },
              "putTimeSeries": {
                "key": "RO1_status"
              },
              "valueToData": {
                "type": "CONSTANT",
                "constantValue": 30000,
                "valueToDataFunction": "/* Convert input boolean value to RPC parameters or attribute/time-series value */ \n return \"030101\";"
              }
            },
            "disabledState": {
              "action": "DO_NOTHING",
              "defaultValue": false,
              "getAttribute": {
                "key": "state",
                "scope": null
              },
              "getTimeSeries": {
                "key": "state"
              },
              "getAlarmStatus": {
                "severityList": null,
                "typeList": null
              },
              "dataToValue": {
                "type": "NONE",
                "compareToValue": true,
                "dataToValueFunction": "/* Should return boolean value */\nreturn data;"
              }
            },
            "autoScale": true,
            "horizontalFill": true,
            "verticalFill": false,
            "checkedAppearance": {
              "type": "outlined",
              "autoScale": true,
              "showLabel": true,
              "label": "Opened",
              "showIcon": true,
              "icon": "mdi:lock-open-variant",
              "iconSize": 24,
              "iconSizeUnit": "px",
              "mainColor": "#198038",
              "backgroundColor": "#FFFFFF",
              "customStyle": {
                "enabled": null,
                "hovered": null,
                "pressed": null,
                "activated": null,
                "disabled": null
              },
              "borderRadius": "4px"
            },
            "uncheckedAppearance": {
              "type": "filled",
              "autoScale": true,
              "showLabel": true,
              "label": "Closed",
              "showIcon": true,
              "icon": "lock",
              "iconSize": 24,
              "iconSizeUnit": "px",
              "mainColor": "#D12730",
              "backgroundColor": "#FFFFFF",
              "customStyle": {
                "enabled": null,
                "hovered": null,
                "pressed": null,
                "activated": null,
                "disabled": null
              },
              "borderRadius": "4px"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "padding": "12px"
          },
          "title": "3",
          "dropShadow": true,
          "enableFullscreen": false,
          "widgetStyle": {},
          "actions": {},
          "widgetCss": "",
          "noDataDisplayMessage": "",
          "titleFont": {
            "size": 16,
            "sizeUnit": "px",
            "family": "Roboto",
            "weight": "500",
            "style": null,
            "lineHeight": "1.6"
          },
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "pageSize": 1024,
          "titleIcon": "home",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "configMode": "advanced",
          "targetDevice": {
            "type": "entity",
            "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc"
          },
          "titleColor": null,
          "borderRadius": null,
          "datasources": [],
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "f9793b84-1eda-f125-3155-62923fa3018a"
      },
      "00a501c6-9560-3cd6-262e-174f48bff3b3": {
        "typeFullFqn": "system.toggle_button",
        "type": "rpc",
        "sizeX": 4,
        "sizeY": 2,
        "config": {
          "showTitle": true,
          "backgroundColor": "#ffffff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "initialState": {
              "action": "GET_TIME_SERIES",
              "defaultValue": false,
              "executeRpc": {
                "method": "getState",
                "requestTimeout": 5000,
                "requestPersistent": false,
                "persistentPollingInterval": 1000
              },
              "getAttribute": {
                "key": "RO1_status",
                "scope": "SERVER_SCOPE"
              },
              "getTimeSeries": {
                "key": "RO1_status"
              },
              "getAlarmStatus": {
                "severityList": null,
                "typeList": null
              },
              "dataToValue": {
                "type": "NONE",
                "compareToValue": "ON",
                "dataToValueFunction": "/* Should return boolean value */\nreturn data;"
              }
            },
            "checkState": {
              "action": "SET_ATTRIBUTE",
              "executeRpc": {
                "method": "",
                "requestTimeout": 5000,
                "requestPersistent": false,
                "persistentPollingInterval": 1000
              },
              "setAttribute": {
                "key": "RO1_status",
                "scope": "SERVER_SCOPE"
              },
              "putTimeSeries": {
                "key": "RO1_status"
              },
              "valueToData": {
                "type": "CONSTANT",
                "constantValue": 30101,
                "valueToDataFunction": "/* Convert input boolean value to RPC parameters or attribute/time-series value */\nreturn \"030101\";"
              }
            },
            "uncheckState": {
              "action": "SET_ATTRIBUTE",
              "executeRpc": {
                "method": "setState",
                "requestTimeout": 5000,
                "requestPersistent": false,
                "persistentPollingInterval": 1000
              },
              "setAttribute": {
                "scope": "SERVER_SCOPE",
                "key": "RO1_status"
              },
              "putTimeSeries": {
                "key": "RO1_status"
              },
              "valueToData": {
                "type": "CONSTANT",
                "constantValue": 30000,
                "valueToDataFunction": "/* Convert input boolean value to RPC parameters or attribute/time-series value */ \n return \"030101\";"
              }
            },
            "disabledState": {
              "action": "DO_NOTHING",
              "defaultValue": false,
              "getAttribute": {
                "key": "state",
                "scope": null
              },
              "getTimeSeries": {
                "key": "state"
              },
              "getAlarmStatus": {
                "severityList": null,
                "typeList": null
              },
              "dataToValue": {
                "type": "NONE",
                "compareToValue": true,
                "dataToValueFunction": "/* Should return boolean value */\nreturn data;"
              }
            },
            "autoScale": true,
            "horizontalFill": true,
            "verticalFill": false,
            "checkedAppearance": {
              "type": "outlined",
              "autoScale": true,
              "showLabel": true,
              "label": "Opened",
              "showIcon": true,
              "icon": "mdi:lock-open-variant",
              "iconSize": 24,
              "iconSizeUnit": "px",
              "mainColor": "#198038",
              "backgroundColor": "#FFFFFF",
              "customStyle": {
                "enabled": null,
                "hovered": null,
                "pressed": null,
                "activated": null,
                "disabled": null
              },
              "borderRadius": "4px"
            },
            "uncheckedAppearance": {
              "type": "filled",
              "autoScale": true,
              "showLabel": true,
              "label": "Closed",
              "showIcon": true,
              "icon": "lock",
              "iconSize": 24,
              "iconSizeUnit": "px",
              "mainColor": "#D12730",
              "backgroundColor": "#FFFFFF",
              "customStyle": {
                "enabled": null,
                "hovered": null,
                "pressed": null,
                "activated": null,
                "disabled": null
              },
              "borderRadius": "4px"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "padding": "12px"
          },
          "title": "1",
          "dropShadow": true,
          "enableFullscreen": false,
          "widgetStyle": {},
          "actions": {},
          "widgetCss": "",
          "noDataDisplayMessage": "",
          "titleFont": {
            "size": 16,
            "sizeUnit": "px",
            "family": "Roboto",
            "weight": "500",
            "style": null,
            "lineHeight": "1.6"
          },
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "pageSize": 1024,
          "titleIcon": "home",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "24px",
          "configMode": "advanced",
          "targetDevice": {
            "type": "entity",
            "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc"
          },
          "titleColor": null,
          "borderRadius": null,
          "datasources": [],
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "00a501c6-9560-3cd6-262e-174f48bff3b3"
      },
      "7343ce5e-607c-480f-1068-b3c1682df248": {
        "typeFullFqn": "system.cards.entities_table",
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1766570223167,
                "endTimeMs": 1766656623167
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": false,
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "name",
            "useRowStyleFunction": false,
            "entitiesTitle": "Entities"
          },
          "title": "Entities table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8805216645350932
                },
                {
                  "name": "Battery",
                  "type": "timeseries",
                  "label": "ADC",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.6791565260886085,
                  "decimals": 0
                },
                {
                  "name": "Temperature",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.769017559254571,
                  "decimals": 0
                },
                {
                  "name": "Humidity",
                  "type": "timeseries",
                  "label": "distance",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.27458730150176514,
                  "decimals": 0
                },
                {
                  "name": "Sound_ACK",
                  "type": "timeseries",
                  "label": "Sound_ACK",
                  "color": "#607d8b",
                  "settings": {},
                  "_hash": 0.3768608273714148,
                  "decimals": 0
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "displayTimewindow": false,
          "configMode": "basic",
          "actions": {},
          "showTitleIcon": false,
          "titleIcon": "list",
          "iconColor": null,
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "7343ce5e-607c-480f-1068-b3c1682df248"
      },
      "b2a7c8fe-ee51-f85a-e15a-87d6d1d035fc": {
        "typeFullFqn": "system.maps_v2.tencent_maps",
        "type": "latest",
        "sizeX": 9,
        "sizeY": 6,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "latitude",
                  "type": "timeseries",
                  "label": "latitude",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8455836375802019
                },
                {
                  "name": "longitude",
                  "type": "timeseries",
                  "label": "longitude",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.1808611816268837
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728292904665,
                "endTimeMs": 1728379304665
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": true,
          "backgroundColor": "#fff",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "8px",
          "settings": {
            "provider": "tencent-map",
            "tmApiKey": "84d6d83e0e51e481e50454ccbe8986b",
            "tmDefaultMapType": "roadmap",
            "latKeyName": "latitude",
            "lngKeyName": "longitude",
            "xPosKeyName": "xPos",
            "yPosKeyName": "yPos",
            "defaultCenterPosition": "0,0",
            "disableScrollZooming": false,
            "disableDoubleClickZooming": false,
            "disableZoomControl": false,
            "fitMapBounds": true,
            "useDefaultCenterPosition": false,
            "mapPageSize": 16384,
            "markerOffsetX": 0.5,
            "markerOffsetY": 1,
            "posFunction": "return {x: origXPos, y: origYPos};",
            "draggableMarker": false,
            "showLabel": true,
            "useLabelFunction": false,
            "label": "${entityName}",
            "showTooltip": true,
            "showTooltipAction": "click",
            "autocloseTooltip": true,
            "useTooltipFunction": false,
            "tooltipPattern": "<div style='font-size: 13px;'><b>${entityName}</b><br/><br/><b>Latitude:</b> ${latitude:7}<br/><b>Longitude:</b> ${longitude:7}<br/><b>Temperature:</b> ${temperature} °C<br/><small>See advanced settings for details</small></div>",
            "tooltipOffsetX": 0,
            "tooltipOffsetY": -1,
            "color": "#fe7569",
            "useColorFunction": true,
            "colorFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'colorpin') {\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120 * 100;\n\t    return tinycolor.mix('blue', 'red', percent).toHexString();\n\t}\n\treturn 'blue';\n}\n",
            "useMarkerImageFunction": true,
            "markerImageSize": 34,
            "markerImageFunction": "var type = dsData[dsIndex]['Type'];\nif (type == 'thermometer') {\n\tvar res = {\n\t    url: images[0],\n\t    size: 40\n\t}\n\tvar temperature = dsData[dsIndex]['temperature'];\n\tif (typeof temperature !== undefined) {\n\t    var percent = (temperature + 60)/120;\n\t    var index = Math.min(3, Math.floor(4 * percent));\n\t    res.url = images[index];\n\t}\n\treturn res;\n}",
            "markerImages": [
              "tb-image;/api/images/system/map_marker_image_0_(1).png",
              "tb-image;/api/images/system/map_marker_image_1_(1).png",
              "tb-image;/api/images/system/map_marker_image_2_(1).png",
              "tb-image;/api/images/system/map_marker_image_3.png"
            ],
            "showPolygon": false,
            "polygonKeyName": "coordinates",
            "editablePolygon": false,
            "showPolygonLabel": false,
            "usePolygonLabelFunction": false,
            "polygonLabel": "${entityName}",
            "showPolygonTooltip": false,
            "showPolygonTooltipAction": "click",
            "autoClosePolygonTooltip": true,
            "usePolygonTooltipFunction": false,
            "polygonTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "polygonColor": "#3388ff",
            "polygonOpacity": 0.5,
            "usePolygonColorFunction": false,
            "polygonStrokeColor": "#3388ff",
            "polygonStrokeOpacity": 1,
            "polygonStrokeWeight": 1,
            "usePolygonStrokeColorFunction": false,
            "showCircle": false,
            "circleKeyName": "perimeter",
            "editableCircle": false,
            "showCircleLabel": false,
            "useCircleLabelFunction": false,
            "circleLabel": "${entityName}",
            "showCircleTooltip": false,
            "showCircleTooltipAction": "click",
            "autoCloseCircleTooltip": true,
            "useCircleTooltipFunction": false,
            "circleTooltipPattern": "<b>${entityName}</b><br/><br/><b>TimeStamp:</b> ${ts:7}",
            "circleFillColor": "#3388ff",
            "circleFillColorOpacity": 0.2,
            "useCircleFillColorFunction": false,
            "circleStrokeColor": "#3388ff",
            "circleStrokeOpacity": 1,
            "circleStrokeWeight": 3,
            "useCircleStrokeColorFunction": false,
            "useClusterMarkers": false,
            "zoomOnClick": true,
            "maxClusterRadius": 80,
            "animate": true,
            "spiderfyOnMaxZoom": false,
            "showCoverageOnHover": true,
            "chunkedLoading": false,
            "removeOutsideVisibleBounds": true,
            "useIconCreateFunction": false
          },
          "title": "Tencent Map",
          "dropShadow": true,
          "enableFullscreen": true,
          "widgetStyle": {},
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "useDashboardTimewindow": true,
          "showLegend": false,
          "actions": {},
          "displayTimewindow": true
        },
        "row": 0,
        "col": 0,
        "id": "b2a7c8fe-ee51-f85a-e15a-87d6d1d035fc"
      },
      "1673d3b7-ef91-e177-893b-8f3e02a2ac8a": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "Tem",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.15877881667089944,
                  "units": "°C",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": true,
              "valueFormat": null
            },
            "thresholds": [],
            "dataZoom": true,
            "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)",
            "tooltipHideZeroValues": null
          },
          "title": "Temperature",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": null,
          "configMode": "basic",
          "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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "1673d3b7-ef91-e177-893b-8f3e02a2ac8a"
      },
      "769a9e42-b81f-1ea9-2ac6-546ca23c1f5a": {
        "typeFullFqn": "system.line_chart",
        "type": "timeseries",
        "sizeX": 8,
        "sizeY": 5,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "Hum",
                  "type": "timeseries",
                  "label": "humidity",
                  "color": "#2196f3",
                  "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)",
                      "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)",
                      "backgroundSettings": {
                        "type": "none",
                        "opacity": 0.4,
                        "gradient": {
                          "start": 100,
                          "end": 0
                        }
                      }
                    }
                  },
                  "_hash": 0.909322020083501,
                  "units": "%",
                  "decimals": 3,
                  "aggregationType": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              },
              "latestDataKeys": []
            }
          ],
          "timewindow": {
            "hideAggregation": false,
            "hideAggInterval": false,
            "hideTimezone": false,
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 0,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "interval": 300000
            },
            "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": {
            "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": true,
            "stack": false,
            "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,
            "legendLabelFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "400",
              "lineHeight": "16px"
            },
            "legendLabelColor": "rgba(0, 0, 0, 0.76)",
            "legendConfig": {
              "position": "top",
              "sortDataKeys": false,
              "showMin": false,
              "showMax": false,
              "showAvg": true,
              "showTotal": false,
              "showLatest": true
            },
            "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,
            "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": "Humidity",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": 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": "0px",
          "iconSize": "0px",
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "769a9e42-b81f-1ea9-2ac6-546ca23c1f5a"
      },
      "9b3434c5-6f45-ac3a-624a-aee2963ad765": {
        "typeFullFqn": "system.cards.entities_table",
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1766570223167,
                "endTimeMs": 1766656623167
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": false,
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "name",
            "useRowStyleFunction": false,
            "entitiesTitle": "Entities"
          },
          "title": "Entities table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8805216645350932
                },
                {
                  "name": "Latitude",
                  "type": "timeseries",
                  "label": "Latitude",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.33567859782738385,
                  "decimals": 0,
                  "aggregationType": "NONE",
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "Longitude",
                  "type": "timeseries",
                  "label": "Longitude",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.6358898194015414,
                  "decimals": 0,
                  "aggregationType": "NONE",
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "Tem",
                  "type": "timeseries",
                  "label": "Temperature",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.769017559254571,
                  "decimals": 0,
                  "aggregationType": "NONE",
                  "units": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "Hum",
                  "type": "timeseries",
                  "label": "Humidity",
                  "color": "#9c27b0",
                  "settings": {},
                  "_hash": 0.8666872607720268,
                  "decimals": 0,
                  "aggregationType": "NONE",
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "Alarm Indicate",
                  "type": "timeseries",
                  "label": "Alarm",
                  "color": "#607d8b",
                  "settings": {},
                  "_hash": 0.248935803707654,
                  "decimals": 0,
                  "aggregationType": "NONE",
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                },
                {
                  "name": "RSSI",
                  "type": "timeseries",
                  "label": "RSSI",
                  "color": "#8bc34a",
                  "settings": {},
                  "_hash": 0.2894889208106869,
                  "decimals": 0
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "displayTimewindow": false,
          "configMode": "basic",
          "actions": {},
          "showTitleIcon": false,
          "titleIcon": "list",
          "iconColor": null,
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "9b3434c5-6f45-ac3a-624a-aee2963ad765"
      },
      "b8b3ae97-122e-4438-2464-3604d4286def": {
        "typeFullFqn": "system.cards.entities_table",
        "type": "latest",
        "sizeX": 7.5,
        "sizeY": 6.5,
        "config": {
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 86400000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1766570223167,
                "endTimeMs": 1766656623167
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "NONE",
              "limit": 200
            }
          },
          "showTitle": true,
          "backgroundColor": "rgb(255, 255, 255)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "4px",
          "settings": {
            "enableSearch": true,
            "enableSelectColumnDisplay": true,
            "enableStickyHeader": true,
            "enableStickyAction": true,
            "reserveSpaceForHiddenAction": "true",
            "displayEntityName": false,
            "displayEntityLabel": false,
            "displayEntityType": false,
            "displayPagination": true,
            "defaultPageSize": 10,
            "defaultSortOrder": "name",
            "useRowStyleFunction": false,
            "entitiesTitle": "Entities"
          },
          "title": "Entities table",
          "dropShadow": true,
          "enableFullscreen": true,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400,
            "padding": "5px 10px 5px 10px"
          },
          "useDashboardTimewindow": false,
          "showLegend": false,
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "filterId": null,
              "dataKeys": [
                {
                  "name": "name",
                  "type": "entityField",
                  "label": "Name",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.8805216645350932
                },
                {
                  "name": "BAT",
                  "type": "timeseries",
                  "label": "BAT",
                  "color": "#4caf50",
                  "settings": {},
                  "_hash": 0.50891735558855,
                  "decimals": 0
                },
                {
                  "name": "IDC",
                  "type": "timeseries",
                  "label": "IDC",
                  "color": "#f44336",
                  "settings": {},
                  "_hash": 0.305403130186472,
                  "decimals": 0
                },
                {
                  "name": "IN1",
                  "type": "timeseries",
                  "label": "IN1",
                  "color": "#ffc107",
                  "settings": {},
                  "_hash": 0.2437155181592907,
                  "decimals": 0
                },
                {
                  "name": "IN2",
                  "type": "timeseries",
                  "label": "IN2",
                  "color": "#607d8b",
                  "settings": {},
                  "_hash": 0.7762827799106704,
                  "decimals": 0
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "displayTimewindow": false,
          "configMode": "basic",
          "actions": {},
          "showTitleIcon": false,
          "titleIcon": "list",
          "iconColor": null,
          "titleFont": null,
          "titleColor": null,
          "enableDataExport": true
        },
        "row": 0,
        "col": 0,
        "id": "b8b3ae97-122e-4438-2464-3604d4286def"
      },
      "27535d0b-4dd8-22dd-b30f-ecfa0b09807d": {
        "typeFullFqn": "system.volatile_organic_compounds_card",
        "type": "latest",
        "sizeX": 3,
        "sizeY": 3,
        "config": {
          "datasources": [
            {
              "type": "entity",
              "name": "",
              "entityAliasId": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
              "dataKeys": [
                {
                  "name": "pitch",
                  "type": "timeseries",
                  "label": "Pitch",
                  "color": "#2196f3",
                  "settings": {},
                  "_hash": 0.7654440528740354,
                  "aggregationType": "NONE",
                  "units": null,
                  "decimals": null,
                  "funcBody": null,
                  "usePostProcessing": null,
                  "postFuncBody": null
                }
              ],
              "alarmFilterConfig": {
                "statusList": [
                  "ACTIVE"
                ]
              }
            }
          ],
          "timewindow": {
            "displayValue": "",
            "selectedTab": 0,
            "realtime": {
              "realtimeType": 1,
              "interval": 1000,
              "timewindowMs": 60000,
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideQuickInterval": false
            },
            "history": {
              "historyType": 0,
              "interval": 1000,
              "timewindowMs": 60000,
              "fixedTimewindow": {
                "startTimeMs": 1728453110621,
                "endTimeMs": 1728539510621
              },
              "quickInterval": "CURRENT_DAY",
              "hideInterval": false,
              "hideLastInterval": false,
              "hideFixedInterval": false,
              "hideQuickInterval": false
            },
            "aggregation": {
              "type": "AVG",
              "limit": 25000
            }
          },
          "showTitle": false,
          "backgroundColor": "rgba(0, 0, 0, 0)",
          "color": "rgba(0, 0, 0, 0.87)",
          "padding": "0px",
          "settings": {
            "labelPosition": "top",
            "layout": "square",
            "showLabel": true,
            "labelFont": {
              "family": "Roboto",
              "size": 16,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "labelColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';"
            },
            "showIcon": true,
            "iconSize": 40,
            "iconSizeUnit": "px",
            "icon": "auto_graph",
            "iconColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ],
              "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';"
            },
            "valueFont": {
              "size": 32,
              "sizeUnit": "px",
              "family": "Roboto",
              "weight": "500",
              "style": "normal"
            },
            "valueColor": {
              "type": "range",
              "color": "rgba(0, 0, 0, 0.87)",
              "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';",
              "rangeList": [
                {
                  "from": 0,
                  "to": 500,
                  "color": "#80C32C"
                },
                {
                  "from": 500,
                  "to": 1000,
                  "color": "#FFA600"
                },
                {
                  "from": 1000,
                  "to": null,
                  "color": "#D81838"
                }
              ]
            },
            "showDate": true,
            "dateFormat": {
              "format": null,
              "lastUpdateAgo": true,
              "custom": false
            },
            "dateFont": {
              "family": "Roboto",
              "size": 12,
              "sizeUnit": "px",
              "style": "normal",
              "weight": "500"
            },
            "dateColor": {
              "type": "constant",
              "color": "rgba(0, 0, 0, 0.38)",
              "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';"
            },
            "background": {
              "type": "color",
              "color": "#fff",
              "overlay": {
                "enabled": false,
                "color": "rgba(255,255,255,0.72)",
                "blur": 3
              }
            },
            "autoScale": true
          },
          "title": "Volatile organic compounds card",
          "dropShadow": true,
          "enableFullscreen": false,
          "titleStyle": {
            "fontSize": "16px",
            "fontWeight": 400
          },
          "units": "",
          "decimals": 0,
          "useDashboardTimewindow": true,
          "showLegend": false,
          "widgetStyle": {},
          "actions": {},
          "configMode": "basic",
          "displayTimewindow": true,
          "margin": "0px",
          "borderRadius": "0px",
          "widgetCss": "",
          "pageSize": 1024,
          "noDataDisplayMessage": "",
          "showTitleIcon": false,
          "titleTooltip": "",
          "titleFont": {
            "size": 12,
            "sizeUnit": "px",
            "family": null,
            "weight": null,
            "style": null,
            "lineHeight": "1.6"
          },
          "titleIcon": "",
          "iconColor": "rgba(0, 0, 0, 0.87)",
          "iconSize": "14px",
          "timewindowStyle": {
            "showIcon": true,
            "iconSize": "14px",
            "icon": "query_builder",
            "iconPosition": "left",
            "font": {
              "size": 12,
              "sizeUnit": "px",
              "family": null,
              "weight": null,
              "style": null,
              "lineHeight": "1"
            },
            "color": null
          },
          "enableDataExport": false
        },
        "row": 0,
        "col": 0,
        "id": "27535d0b-4dd8-22dd-b30f-ecfa0b09807d"
      }
    },
    "states": {
      "default": {
        "name": "Dragino Share LORA Dashboard",
        "root": true,
        "layouts": {
          "main": {
            "widgets": {
              "e998fe3e-5df5-1e66-ec58-05855bf52e7c": {
                "sizeX": 24,
                "sizeY": 13,
                "row": 0,
                "col": 0
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "ais01-lb": {
        "name": "ais01-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "69a0588f-d5d1-de2e-3755-14ee41fd0bcb": {
                "sizeX": 8,
                "sizeY": 6,
                "row": 0,
                "col": 0
              },
              "4338a4b4-45ed-3d13-41c6-304cee3b43ac": {
                "sizeX": 15,
                "sizeY": 6,
                "row": 0,
                "col": 8
              },
              "0a639a76-ecb5-7338-f063-b5fcc91c6806": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 6,
                "col": 0
              },
              "562e90db-612b-a3a0-0ca8-bfb4c39020cf": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 6,
                "col": 4
              },
              "a224c10b-eb13-5cee-7ea4-3d49302d81bc": {
                "sizeX": 5,
                "sizeY": 6,
                "row": 6,
                "col": 8
              },
              "bb384c5f-fd9f-2eac-92ef-83f09afa2b1e": {
                "sizeX": 5,
                "sizeY": 6,
                "row": 6,
                "col": 13
              },
              "27535d0b-4dd8-22dd-b30f-ecfa0b09807d": {
                "sizeX": 5,
                "sizeY": 6,
                "row": 6,
                "col": 18
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "aqs01-l": {
        "name": "aqs01-l",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "c2e54ff2-069a-de89-60ba-394222ee7a2f": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "7e9f257b-7554-193b-b61f-420f92d36235": {
                "sizeX": 12,
                "sizeY": 6,
                "row": 0,
                "col": 8
              },
              "13c58e81-72a0-53b5-c7d1-f64090cc4ad8": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "3964303b-c3f3-fa0e-af7d-8b2270effbd1": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              },
              "90ac5a86-d131-e578-63ff-02e749953866": {
                "sizeX": 6,
                "sizeY": 6,
                "row": 6,
                "col": 8
              },
              "d85f53a5-8758-3480-03dd-5b1ee3e55407": {
                "sizeX": 6,
                "sizeY": 6,
                "row": 6,
                "col": 14
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "aqs02-l": {
        "name": "aqs02-l",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "b8bc8060-dac6-ea8a-dcb9-22d749ad4eb9": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "ed23fd94-3c34-5c33-5f50-e0f5b58b08bb": {
                "sizeX": 12,
                "sizeY": 6,
                "row": 0,
                "col": 8
              },
              "2ce1bf3b-18d1-46ee-ac04-38a5306cec6f": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "583abaf4-fe24-f97d-6349-935d87d0ac3b": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              },
              "221a4ef9-941e-3854-b650-753625cf15ae": {
                "sizeX": 6,
                "sizeY": 6,
                "row": 6,
                "col": 8
              },
              "d670c869-2702-625b-937a-900990abe198": {
                "sizeX": 6,
                "sizeY": 6,
                "row": 6,
                "col": 14
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "cpl01": {
        "name": "cpl01",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "96fe962e-0023-248f-ace4-55f78e4c94c6": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "4a5a4065-a348-ae73-c216-29184445d80e": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 0,
                "col": 8
              },
              "88ec9082-a800-0d59-340f-9d71f154ebe4": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 2,
                "col": 8
              },
              "c61c42fa-c520-56e7-db36-0bbdfa7009fc": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 0,
                "col": 13
              },
              "9cdb144b-c214-1f76-ad2d-0abbe9557794": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 2,
                "col": 13
              },
              "afea88dc-02ab-2462-8fef-9a4988cb6aaa": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 0,
                "col": 18
              },
              "804b08c8-9ef2-df52-7573-f1441d8d8689": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 2,
                "col": 18
              },
              "e82e348f-6350-1849-5242-53c57dab7af1": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 0,
                "col": 23
              },
              "b5526af1-b69a-69ab-6f4d-ea845e5fa8f2": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 2,
                "col": 23
              },
              "03a3db50-7cba-1d1f-ccf2-d73c03192a35": {
                "sizeX": 4,
                "sizeY": 8,
                "row": 5,
                "col": 0
              },
              "3f815805-12e3-ba0a-37e0-a6fc23d9d15a": {
                "sizeX": 4,
                "sizeY": 8,
                "row": 5,
                "col": 4
              },
              "a4fddb41-947f-5ab9-1776-ef21e7d9634e": {
                "sizeX": 20,
                "sizeY": 9,
                "row": 4,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "cpl03-lb": {
        "name": "cpl03-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "5c9506e9-fcab-a204-15c4-6fec0d5df03e": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "7004256d-90f3-8c88-0ddf-c4b441ac504f": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 0,
                "col": 8
              },
              "94fa8063-e7a2-3ef5-0dda-1110f34461aa": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 2,
                "col": 8
              },
              "8ed21e38-d756-2400-2346-ea21fd9339e3": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 0,
                "col": 13
              },
              "e85310ce-9f9f-edba-416a-022e2d1fbaff": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 2,
                "col": 13
              },
              "b43d370a-f53f-6adb-c508-b9bc45d2caa4": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 0,
                "col": 18
              },
              "d5f30679-2dcf-a0cb-4268-f1337619a55d": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 2,
                "col": 18
              },
              "5d587a0a-18e3-b027-f91d-7f660cae3a4b": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 0,
                "col": 23
              },
              "efde899e-5556-8b42-aa2e-d670858fa8e6": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 2,
                "col": 23
              },
              "371f5550-91cd-0699-cca2-dfdd7772d8a4": {
                "sizeX": 4,
                "sizeY": 8,
                "row": 5,
                "col": 0
              },
              "9423b3f4-552e-8fcd-1b6f-5e781447d783": {
                "sizeX": 4,
                "sizeY": 8,
                "row": 5,
                "col": 4
              },
              "e33bb8b7-221a-81d0-f141-75c8136b53f5": {
                "sizeX": 20,
                "sizeY": 9,
                "row": 4,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "cpl03": {
        "name": "cpl03",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "3076e70f-35d2-b497-80ca-2d0774ed608a": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "39e193fb-f2f6-6461-72c8-6bb050097fdb": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 0,
                "col": 8
              },
              "371818ba-7dbd-03d2-d634-f68088852cd4": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 2,
                "col": 8
              },
              "54353722-1f37-9918-7fd1-128cabe604c8": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 0,
                "col": 13
              },
              "feec0fd1-65e8-195b-430f-06eff37ba7b8": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 2,
                "col": 13
              },
              "7594139f-7018-c4b7-1b75-8f88a439e076": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 0,
                "col": 18
              },
              "6e96af22-0189-7dfc-437c-ba1e19e7084c": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 2,
                "col": 18
              },
              "bee3bb9f-7871-ec68-55e6-f80ad8c4014c": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 0,
                "col": 23
              },
              "4e22dade-6a5c-77c8-e757-250ba6c74ef9": {
                "sizeX": 5,
                "sizeY": 2,
                "row": 2,
                "col": 23
              },
              "6723545e-445d-0112-a09c-3a42b5c046a7": {
                "sizeX": 4,
                "sizeY": 8,
                "row": 5,
                "col": 0
              },
              "b30f53b9-34ac-fa39-d948-e522d3c182c2": {
                "sizeX": 4,
                "sizeY": 8,
                "row": 5,
                "col": 4
              },
              "664ae9a2-d3f7-201b-f929-cd894c3474fb": {
                "sizeX": 20,
                "sizeY": 9,
                "row": 4,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "cs01-lb": {
        "name": "cs01-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "9373afc4-24c1-c122-ddc2-91ae66760477": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "0cc6a831-ce7f-5609-8799-f968116dcca1": {
                "sizeX": 8,
                "sizeY": 6,
                "row": 5,
                "col": 0
              },
              "812a8a26-c3b0-dd0d-52a6-41269499121b": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "624be6e0-ffb9-6c26-c8c0-e5471f9a2197": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 0,
                "col": 12
              },
              "5ae91994-886c-567e-591a-d4719608138c": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 0,
                "col": 16
              },
              "977b327b-cfbd-7f06-358f-dfddd21b8af1": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 8
              },
              "380953db-325b-2693-e6f7-c27ee85314f7": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 12
              },
              "9b713938-fe75-ccab-dd7c-e806ebd91ff8": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 16
              },
              "5165ac37-7359-8cd3-375c-a8785fab3fba": {
                "sizeX": 10,
                "sizeY": 11,
                "row": 0,
                "col": 20
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "d20-lb": {
        "name": "d20-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "99cffe39-45de-2c49-8630-723e650ad418": {
                "sizeX": 9,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "2fdba255-5685-6695-2fe4-dc836f974292": {
                "sizeX": 5,
                "sizeY": 4,
                "row": 5,
                "col": 0
              },
              "9d3d3e4a-9bd4-9b3e-6dfe-55d885c44a54": {
                "sizeX": 4,
                "sizeY": 4,
                "row": 5,
                "col": 5
              },
              "6813ac2c-bb47-04ca-0180-291e4d4b0bb9": {
                "sizeX": 9,
                "sizeY": 6,
                "row": 9,
                "col": 0
              },
              "932d7a16-1ade-8565-4f13-6be40eb5e370": {
                "sizeX": 10,
                "sizeY": 3,
                "row": 0,
                "col": 9
              },
              "77f45697-56bc-531c-d27e-e9f897e85c9a": {
                "sizeX": 10,
                "sizeY": 12,
                "row": 3,
                "col": 9
              },
              "20602508-93af-1b89-8345-867e1065f6ed": {
                "sizeX": 12,
                "sizeY": 3,
                "row": 0,
                "col": 19
              },
              "f757cd5c-72dc-7d63-9fbd-e5f45cb1c698": {
                "sizeX": 12,
                "sizeY": 12,
                "row": 3,
                "col": 19
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "d20s-lb": {
        "name": "d20s-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "3932c4c8-9968-f442-1b14-7aa3946cfbff": {
                "sizeX": 9,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "3727be34-be67-2779-0e6a-509cf773bc00": {
                "sizeX": 5,
                "sizeY": 4,
                "row": 5,
                "col": 0
              },
              "6a0269bd-97af-a915-44df-abfecd645add": {
                "sizeX": 4,
                "sizeY": 4,
                "row": 5,
                "col": 5
              },
              "249b6883-341e-cbef-54b5-7eecf921ca6c": {
                "sizeX": 9,
                "sizeY": 6,
                "row": 9,
                "col": 0
              },
              "6a1adde0-58b9-84cd-e56a-c296c95acdeb": {
                "sizeX": 10,
                "sizeY": 3,
                "row": 0,
                "col": 9
              },
              "0332e84e-eeca-50b5-450b-c31af6c5f958": {
                "sizeX": 10,
                "sizeY": 12,
                "row": 3,
                "col": 9
              },
              "b1b6133a-ba1f-977e-eca1-ed37599e41c5": {
                "sizeX": 12,
                "sizeY": 3,
                "row": 0,
                "col": 19
              },
              "722c7fe3-19c3-baed-a1c9-09ec0e99ac74": {
                "sizeX": 12,
                "sizeY": 12,
                "row": 3,
                "col": 19
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "d22-lb": {
        "name": "d22-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "fc1172d3-e470-697a-509e-f601e9e151bf": {
                "sizeX": 9,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "a66fad6f-8d1a-6bf8-8ddc-33bd7718fc3e": {
                "sizeX": 5,
                "sizeY": 4,
                "row": 5,
                "col": 0
              },
              "8d345c9e-1865-2f2f-8067-e9657f1326be": {
                "sizeX": 4,
                "sizeY": 4,
                "row": 5,
                "col": 5
              },
              "fd5153c4-d75e-6966-02ab-295af79c6b30": {
                "sizeX": 9,
                "sizeY": 6,
                "row": 9,
                "col": 0
              },
              "ca4d9d97-9a12-4a6c-bab8-508f7295d7f4": {
                "sizeX": 10,
                "sizeY": 3,
                "row": 0,
                "col": 9
              },
              "9cd27ccd-75bd-0584-25b1-c649d36b6527": {
                "sizeX": 10,
                "sizeY": 12,
                "row": 3,
                "col": 9
              },
              "5d84b18d-ec4e-500a-316a-c4c051723ff7": {
                "sizeX": 12,
                "sizeY": 3,
                "row": 0,
                "col": 19
              },
              "49b0a7cd-8d6d-d9a5-9d5f-80c7b7e84c65": {
                "sizeX": 12,
                "sizeY": 12,
                "row": 3,
                "col": 19
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "d23-lb": {
        "name": "d23-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "2f994067-1c0b-aa65-0f36-733812f6ad6d": {
                "sizeX": 9,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "12ee9e51-8422-65a7-d62c-650d588b10a5": {
                "sizeX": 5,
                "sizeY": 4,
                "row": 5,
                "col": 0
              },
              "9b156b4f-9348-f5d0-16c7-e5c90682212d": {
                "sizeX": 4,
                "sizeY": 4,
                "row": 5,
                "col": 5
              },
              "f7ca9c41-394b-8a48-b947-c40d481e4448": {
                "sizeX": 9,
                "sizeY": 6,
                "row": 9,
                "col": 0
              },
              "d0b8e7b8-c534-9bff-bd5c-fe27bd96bb27": {
                "sizeX": 10,
                "sizeY": 3,
                "row": 0,
                "col": 9
              },
              "b1c70257-4229-41a4-5ba6-c3677ccd6c95": {
                "sizeX": 10,
                "sizeY": 12,
                "row": 3,
                "col": 9
              },
              "ca953f90-441c-d033-81d2-bf0c61950d7e": {
                "sizeX": 12,
                "sizeY": 3,
                "row": 0,
                "col": 19
              },
              "14360ecb-790e-e24f-0380-ea37547eb4fa": {
                "sizeX": 12,
                "sizeY": 12,
                "row": 3,
                "col": 19
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "dds04-lb": {
        "name": "dds04-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "fe61f5a5-ed91-d613-76ab-e437dc9ca361": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "de0fc8d7-0cb3-e8e8-ba1b-acdce22b7052": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "ca3ec709-8177-57ea-3898-3b487e5afda8": {
                "sizeX": 4,
                "sizeY": 4,
                "row": 0,
                "col": 16
              },
              "ac32ccc3-a53e-78dc-a5c7-c32b5389e5f4": {
                "sizeX": 4,
                "sizeY": 4,
                "row": 0,
                "col": 20
              },
              "b3906438-5de0-4d7b-3976-a61f53618515": {
                "sizeX": 8,
                "sizeY": 3,
                "row": 5,
                "col": 0
              },
              "542ea178-c6a8-aa84-61c4-60a3c010cb18": {
                "sizeX": 8,
                "sizeY": 3,
                "row": 5,
                "col": 8
              },
              "ec6f1aeb-e501-43bc-1aa9-0c14a383c1ed": {
                "sizeX": 8,
                "sizeY": 3,
                "row": 8,
                "col": 0
              },
              "3af1dc3d-49ad-43c3-c677-c238a363b245": {
                "sizeX": 8,
                "sizeY": 3,
                "row": 8,
                "col": 8
              },
              "c8a1dfce-e9c9-5998-849a-75ef0ae7697d": {
                "sizeX": 8,
                "sizeY": 7,
                "row": 4,
                "col": 16
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "dds20-lb": {
        "name": "dds20-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "b8de076b-43f5-3b48-0ad4-c570556e40cd": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "92a87358-1623-7e21-ad36-2fdaedbc29ef": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 5,
                "col": 0
              },
              "c8053e79-520d-fcc7-7897-377c5d3c6df0": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "fdfbd4a3-94e9-5e0a-7a2b-0f09cc635c8b": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 5,
                "col": 8
              },
              "9b92a7cb-2c9f-d9cb-d6de-1645d4603987": {
                "sizeX": 13,
                "sizeY": 10,
                "row": 0,
                "col": 12
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "dds45-lb": {
        "name": "dds45-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "d80403d9-9db8-f6ad-8311-fe90b18bfe39": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "10142eeb-c6f4-1428-7556-3c3921db5b44": {
                "sizeX": 14,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "34890428-f492-c26d-196f-9c82baad858e": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 0
              },
              "048b4f70-4165-7f89-a6b8-5bd54cf85308": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 4
              },
              "82711666-0fc0-e45e-71dd-c953d6afabf0": {
                "sizeX": 14,
                "sizeY": 6,
                "row": 5,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "dds75-lb": {
        "name": "dds75-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "46456f4b-6857-fe85-f6e5-ef06d6678dcd": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "3696b0c4-3a2c-5927-3989-487dd9087166": {
                "sizeX": 14,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "79edb7b9-16e5-50c3-f89f-e38e598c0b2a": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "34a74f95-bcc6-2465-6624-6f8994c54d43": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              },
              "3df14505-9c5a-e593-66a0-7ddbf2468a22": {
                "sizeX": 14,
                "sizeY": 7,
                "row": 5,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "ds03a-lb": {
        "name": "ds03a-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "7f56ec78-4f4a-1b24-f5fe-b4a299017a3f": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "7566238a-934c-e75c-901a-08c1277b7999": {
                "sizeX": 7,
                "sizeY": 3,
                "row": 0,
                "col": 8
              },
              "95612fac-dfd4-682c-3a45-97bc086a6002": {
                "sizeX": 7,
                "sizeY": 3,
                "row": 3,
                "col": 8
              },
              "c2cf1216-5f31-7c87-aa99-221c0d3f542f": {
                "sizeX": 3,
                "sizeY": 3,
                "row": 0,
                "col": 15
              },
              "eaac8f58-5fda-9a87-3ed1-29dc27def45f": {
                "sizeX": 3,
                "sizeY": 3,
                "row": 3,
                "col": 15
              },
              "fb294120-1538-3dec-188b-ad667618cdc4": {
                "sizeX": 5,
                "sizeY": 3,
                "row": 0,
                "col": 18
              },
              "a0926057-e5ce-f043-f79c-419f29500504": {
                "sizeX": 5,
                "sizeY": 3,
                "row": 3,
                "col": 18
              },
              "586f8715-7190-d3dd-e8a3-3d7ea1914463": {
                "sizeX": 3,
                "sizeY": 3,
                "row": 0,
                "col": 23
              },
              "3e78d438-2e3f-1650-0bf3-285152340b34": {
                "sizeX": 3,
                "sizeY": 3,
                "row": 3,
                "col": 23
              },
              "867d96e4-d9bd-6a2f-ae99-01e4cd42ce7b": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "619c0a1f-c6b0-a8c1-60b3-844654461ace": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              },
              "1facca78-5967-fb93-4655-a2b335cda29c": {
                "sizeX": 18,
                "sizeY": 6,
                "row": 6,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "ds20l": {
        "name": "ds20l",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "e7c83f2e-72cd-d62c-dbfc-33f3fe14069f": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "eeee3f4c-4248-689e-970a-0b5fb5c04274": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "c2ce95c7-b131-6c9c-0c32-27dffe1f8540": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 16
              },
              "04778aa8-4f4e-2c15-646b-251e9689b9f7": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "d57a78cd-f088-d096-4be4-70935ae1e92b": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              },
              "38a5acc5-3294-f207-d8df-42800229659d": {
                "sizeX": 16,
                "sizeY": 7,
                "row": 5,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "gro-point-air": {
        "name": "gro-point-air",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "ea7cad1a-06fc-f057-8357-515c7cca5676": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "5d67af83-b7ee-6ea2-f029-3743512d929b": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 5,
                "col": 0
              },
              "c59bc4f8-4879-de6b-44ad-6179b8f1774a": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 5,
                "col": 4
              },
              "d3d9d13c-18f3-7e52-a00c-4f971670b21e": {
                "sizeX": 13,
                "sizeY": 10,
                "row": 0,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "laq4": {
        "name": "laq4",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "afd79836-2722-9bbe-c500-a492818b2f2a": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "4be1caa6-2639-524d-bf60-9700949b5d5e": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 5,
                "col": 0
              },
              "f7b7980d-04d4-16fe-6469-091dba22e46d": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 5,
                "col": 4
              },
              "877ec027-a31d-b7df-a0a3-1d22b9fc1150": {
                "sizeX": 13,
                "sizeY": 10,
                "row": 0,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lbt1": {
        "name": "lbt1",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "e87d8894-c392-7b48-6354-a380a2d4db73": {
                "sizeX": 13,
                "sizeY": 10,
                "row": 0,
                "col": 8
              },
              "f7e0ef12-4281-16a2-267a-79a45c863e5d": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "a6a5dc12-51c7-259f-c8ac-176303dccf87": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 5,
                "col": 0
              },
              "13867e94-eeb2-ca22-79c7-70aec9b3f853": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 5,
                "col": 4
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lcc01-lb": {
        "name": "lcc01-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "6ea62f41-98a6-7b41-3ff2-f81398e02ba2": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "5f566f3e-7ec7-d300-7a38-1873a373ffef": {
                "sizeX": 11,
                "sizeY": 3,
                "row": 0,
                "col": 8
              },
              "0f05af93-002a-76e8-97a8-60be791e0512": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "1c4e947d-605c-291e-177e-c5988669c35b": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              },
              "84c440f7-9b90-1588-1a99-aaffc10e1b48": {
                "sizeX": 11,
                "sizeY": 9,
                "row": 3,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "ldds04": {
        "name": "ldds04",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "0979969f-9dae-b34e-c5d6-bba4e0724a5f": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "6f73a5da-1bf7-42ea-4542-428e58682bf5": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "1ed4fd0b-1826-2379-2f3a-afd968b7e693": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 16
              },
              "0e89eea1-f5ff-93e8-8b18-fa693e61b7c6": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "2e38ea91-a884-a6d8-4fef-1c8dfef43e48": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              },
              "cd25695d-12bd-8c69-2976-3b624bb5b95c": {
                "sizeX": 16,
                "sizeY": 7,
                "row": 5,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "ldds20": {
        "name": "ldds20",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "24a34dc5-1a3b-092d-0bb2-d8aeb08f77e7": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "bb33b670-12c4-968f-0346-d9ab922a59fb": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "4217a2f5-4633-c5f9-db05-e4ab2da178a2": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 16
              },
              "94a0ac38-8103-6b68-0ebb-1630e6f89857": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "9631b269-45d6-a2d4-a92c-00a9101ef268": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              },
              "aa6b33bc-95e6-f3f4-77b2-80117bbb507b": {
                "sizeX": 16,
                "sizeY": 7,
                "row": 5,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "ldds45": {
        "name": "ldds45",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "dca14263-960d-f552-093d-46299cf98540": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "c0df7ab3-963e-800e-94a8-54b356ae2bb6": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "d803616d-25be-2c39-ce82-a75999b17d8b": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 16
              },
              "985a499c-b849-3eb4-8145-28fe6b72afed": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "446c9674-5d8c-4f32-66ef-c7bb6823cdc2": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              },
              "e091191e-e982-6b7f-7c35-5e9a4a5e9a63": {
                "sizeX": 16,
                "sizeY": 7,
                "row": 5,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "ldds75": {
        "name": "ldds75",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "30048121-0f85-fcc8-ae5d-e8ae17f660e5": {
                "sizeX": 16,
                "sizeY": 7,
                "row": 5,
                "col": 8
              },
              "260764aa-d14f-e117-1162-35cf69d0ff2b": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "b8640852-c8c8-a867-5d1c-ffd815aacda6": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "454cc1bd-ebb5-eb14-7ddb-81bd0ea09ae4": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 16
              },
              "9b8b87ac-a2d2-bf37-8cad-6feb36fab54b": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "8bc693c8-ac4c-b162-0e15-b8e48a4b5c14": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lds02": {
        "name": "lds02",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "f00b32a0-76c7-449e-9000-eb3631f3bb2a": {
                "sizeX": 7,
                "sizeY": 16,
                "resizable": true,
                "row": 0,
                "col": 5
              },
              "effd84e0-3108-1839-6923-f04af15ec837": {
                "sizeX": 7,
                "sizeY": 16,
                "row": 0,
                "col": 12
              },
              "cff8d865-3c7d-8cf1-5e8d-32b99cf7ec9e": {
                "sizeX": 5,
                "sizeY": 16,
                "row": 0,
                "col": 19
              },
              "60e131a1-5bef-fc00-e27c-47ec38970dd5": {
                "sizeX": 5,
                "sizeY": 6,
                "row": 0,
                "col": 0
              },
              "aced7894-d557-2935-48d6-ffee191839e6": {
                "sizeX": 5,
                "sizeY": 5,
                "row": 6,
                "col": 0
              },
              "83b6c013-6c4d-5650-be66-8e62f3d587cc": {
                "sizeX": 5,
                "sizeY": 5,
                "row": 11,
                "col": 0
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lds03a": {
        "name": "lds03a",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "64130b49-b096-a8af-57bf-9791ceb0c4de": {
                "sizeX": 7,
                "sizeY": 16,
                "resizable": true,
                "row": 0,
                "col": 5
              },
              "ac66b65d-31dc-5bcd-8374-f96de290c6c9": {
                "sizeX": 7,
                "sizeY": 16,
                "row": 0,
                "col": 12
              },
              "5c939ce8-2cde-6cc1-2776-c9d9d0532e91": {
                "sizeX": 5,
                "sizeY": 16,
                "row": 0,
                "col": 19
              },
              "38b07ab8-8829-3c65-14c4-9a85ac8305ad": {
                "sizeX": 5,
                "sizeY": 6,
                "row": 0,
                "col": 0
              },
              "20d6bc1f-2b39-2dce-a718-d27efe74b4d6": {
                "sizeX": 5,
                "sizeY": 5,
                "row": 6,
                "col": 0
              },
              "c3b0ef26-7ba0-4596-0280-5eed5a0a2b78": {
                "sizeX": 5,
                "sizeY": 5,
                "row": 11,
                "col": 0
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lds12-lb": {
        "name": "lds12-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "ab7adf81-44b1-aa38-ce3d-faf8a20d5346": {
                "sizeX": 11,
                "sizeY": 7,
                "row": 0,
                "col": 0
              },
              "3f4203ae-d2ec-66bd-c44f-80a35ccad8ce": {
                "sizeX": 5,
                "sizeY": 7,
                "row": 0,
                "col": 11
              },
              "279c6181-7575-183f-5bdc-2203bf114119": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 0,
                "col": 16
              },
              "d59e8dcc-cfd2-924f-ce0b-7f5d64e3a5ea": {
                "sizeX": 10,
                "sizeY": 7,
                "row": 0,
                "col": 20
              },
              "4d80a825-bab9-6713-cbe5-aba336231fd5": {
                "sizeX": 11,
                "sizeY": 9,
                "row": 7,
                "col": 0
              },
              "6b54686e-94fd-946b-d57d-1302cdff5d2a": {
                "sizeX": 12,
                "sizeY": 9,
                "row": 7,
                "col": 11
              },
              "14948f24-f254-8678-fe2f-7c2702e7e178": {
                "sizeX": 7,
                "sizeY": 5,
                "row": 7,
                "col": 23
              },
              "5883cc24-20da-72de-f8b2-f43298013157": {
                "sizeX": 7,
                "sizeY": 4,
                "row": 12,
                "col": 23
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "wsc2-lb": {
        "name": "wsc2-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "a4402d58-97ea-9fff-b735-01b0060165a1": {
                "sizeX": 5,
                "sizeY": 6,
                "row": 0,
                "col": 5
              },
              "2d20bf06-9622-8857-ad8e-a0b14a0080fb": {
                "sizeX": 5,
                "sizeY": 6,
                "row": 0,
                "col": 10
              },
              "496d8ad6-ae7a-14b2-bca3-24c7de713782": {
                "sizeX": 5,
                "sizeY": 6,
                "row": 0,
                "col": 0
              },
              "001b8559-6b67-4ab4-2dbb-eedb96212ddc": {
                "sizeX": 5,
                "sizeY": 6,
                "row": 0,
                "col": 15
              },
              "ff3edacb-3d8e-49da-a340-988bed365710": {
                "sizeX": 5,
                "sizeY": 4,
                "row": 8,
                "col": 20
              },
              "e65108a5-cb46-dccf-b4ca-da810fa8f08d": {
                "sizeX": 20,
                "sizeY": 6,
                "row": 6,
                "col": 0
              },
              "1728ad0a-5819-126b-b316-b067cb97dfa1": {
                "sizeX": 5,
                "sizeY": 8,
                "row": 0,
                "col": 20
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "wsc1-l": {
        "name": "wsc1-l",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "1560e6da-1790-2332-df4e-ed51c6dfbc80": {
                "sizeX": 5,
                "sizeY": 6,
                "row": 0,
                "col": 5
              },
              "b83fd393-c6cd-8044-d513-a7664b69ca8b": {
                "sizeX": 5,
                "sizeY": 6,
                "row": 0,
                "col": 10
              },
              "9301ad22-4d62-566d-bd30-20de0a7357e3": {
                "sizeX": 5,
                "sizeY": 6,
                "row": 0,
                "col": 0
              },
              "c28fcc68-9009-39d7-5b16-822dbe27e338": {
                "sizeX": 5,
                "sizeY": 6,
                "row": 0,
                "col": 15
              },
              "04e1d8ad-020d-b74a-97d2-2e6b68ec353c": {
                "sizeX": 5,
                "sizeY": 4,
                "row": 8,
                "col": 20
              },
              "9c0230ef-a120-b819-4e4c-9761eaea5c54": {
                "sizeX": 20,
                "sizeY": 6,
                "row": 6,
                "col": 0
              },
              "9ada085e-d97b-6404-538c-67a22b26323e": {
                "sizeX": 5,
                "sizeY": 8,
                "row": 0,
                "col": 20
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "wqs-lb": {
        "name": "wqs-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "13d6fac9-851e-c311-5acd-c0d56c18b3e1": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "0eaa8370-1af5-9825-f206-5e9aba0a6242": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "f327fd43-c52a-829e-1854-2ad3021d9c5f": {
                "sizeX": 13,
                "sizeY": 11,
                "row": 0,
                "col": 12
              },
              "d5a67641-6f0c-8065-2b67-c6544974574f": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 0
              },
              "cc0779e7-f285-ae96-7c84-28423b34f55e": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 4
              },
              "5e8d295f-f2d8-4ef9-1990-4dd9ece2b5cd": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "wl03a-lb": {
        "name": "wl03a-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "0f847003-4195-0e39-e04e-03a33b488a95": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "493ecc06-e3ae-58a6-591f-61d513973ba8": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "dfe42aae-56d5-1e4f-3c2c-0f95aaa95d1d": {
                "sizeX": 13,
                "sizeY": 12,
                "row": 0,
                "col": 16
              },
              "6ff28047-e267-14c3-fa6a-fa069da64bdb": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "1533a3c0-0925-bd10-13db-6ab93bfb588e": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              },
              "d28e203e-f2ba-47f5-098b-8e0456e703ef": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 8
              },
              "ea0fdc4e-801f-22bf-adf1-07ef87bf41a7": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 12
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lds40-lb": {
        "name": "lds40-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "b8b70071-f0c7-277d-3ef4-6e61bd6ae94c": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "7ece24b2-4f8a-1d11-9487-bb0d69897cfb": {
                "sizeX": 8,
                "sizeY": 9,
                "row": 5,
                "col": 0
              },
              "8545aa52-3503-3004-fc30-5c4d16ededfa": {
                "sizeX": 6,
                "sizeY": 4,
                "row": 0,
                "col": 8
              },
              "45ee1fab-ea3a-9a0d-0f2e-8ed306f6b079": {
                "sizeX": 5,
                "sizeY": 4,
                "row": 0,
                "col": 14
              },
              "5994fbd5-a7b7-bf3c-f44b-c33ef9e631fc": {
                "sizeX": 5,
                "sizeY": 4,
                "row": 0,
                "col": 19
              },
              "d7a479f4-dd38-7ca1-f730-315c47982ab9": {
                "sizeX": 5,
                "sizeY": 4,
                "row": 0,
                "col": 24
              },
              "f3d4fab5-3885-571c-a6e6-2c71a1c3612a": {
                "sizeX": 11,
                "sizeY": 10,
                "row": 4,
                "col": 8
              },
              "5b06a084-ba7b-e2b8-81ba-8c267fe65800": {
                "sizeX": 10,
                "sizeY": 10,
                "row": 4,
                "col": 19
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lht52": {
        "name": "lht52",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "98d52295-8d99-adce-ad75-084a05586192": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "589b4b49-e5d7-f5aa-0470-31c349b7c73b": {
                "sizeX": 12,
                "sizeY": 6,
                "row": 0,
                "col": 8
              },
              "bb6ea6ef-d589-3dec-6d3e-41944bef3192": {
                "sizeX": 10,
                "sizeY": 12,
                "row": 0,
                "col": 20
              },
              "34f3186d-974a-1648-96f1-90e184eb7014": {
                "sizeX": 12,
                "sizeY": 6,
                "row": 6,
                "col": 8
              },
              "509b0b4d-a748-7f37-509c-811ac3fec93c": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "b331bb8e-32c4-8610-9edb-380bff79932a": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lht65": {
        "name": "lht65",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "0dbfd2db-9ede-6ecd-2b0e-7b57c9512d0f": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "67aec5da-a5a2-0a5e-9f14-26cfb88546f7": {
                "sizeX": 12,
                "sizeY": 6,
                "row": 0,
                "col": 8
              },
              "6412b403-093a-7c45-d8e2-b735d98df856": {
                "sizeX": 10,
                "sizeY": 12,
                "row": 0,
                "col": 20
              },
              "fe33f5d2-fbce-3dca-e6c1-400ac72091ec": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "e6aac6d0-f3da-b271-edd0-647017f0bb2c": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              },
              "7d7b5c94-5ac8-7b46-cf6d-463afc9e9b2d": {
                "sizeX": 12,
                "sizeY": 6,
                "row": 6,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lht65n": {
        "name": "lht65n",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "caeced61-e410-bf51-be0a-a3a4eebc8b4d": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "e8ced7c1-a58d-c4c7-53b9-0ef09896c6b9": {
                "sizeX": 12,
                "sizeY": 6,
                "row": 0,
                "col": 8
              },
              "bbe2cceb-cf1f-12d4-e427-e724a16041fd": {
                "sizeX": 10,
                "sizeY": 12,
                "row": 0,
                "col": 20
              },
              "6bf454a8-b691-4e6b-fc59-9ee135e140aa": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "a8f09468-8e78-83e5-b802-b0240c1aee1b": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              },
              "9d9314bc-0af9-6e3d-c203-7635281005a3": {
                "sizeX": 12,
                "sizeY": 6,
                "row": 6,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lse01-121": {
        "name": "lse01-121",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "4597685a-73cb-fb07-363a-88dc376ceffe": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "9ad27509-6a31-57d4-76ba-dffd2570f435": {
                "sizeX": 9,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "c365feed-db21-312d-1d38-0bf709a3de1c": {
                "sizeX": 9,
                "sizeY": 5,
                "row": 0,
                "col": 17
              },
              "dcbf291b-86c5-ab26-3cf6-944b318255f7": {
                "sizeX": 4,
                "sizeY": 8,
                "row": 5,
                "col": 0
              },
              "14226d56-b942-e37f-6945-37b91114f708": {
                "sizeX": 4,
                "sizeY": 8,
                "row": 5,
                "col": 4
              },
              "8693d195-3a80-bce0-2daf-53ade294ca9a": {
                "sizeX": 5,
                "sizeY": 4,
                "row": 5,
                "col": 8
              },
              "4e5c6ef0-4998-3973-4191-81e97e3baef7": {
                "sizeX": 5,
                "sizeY": 4,
                "row": 9,
                "col": 8
              },
              "602c10a5-cfe4-f2b0-8f05-cee44dfeb050": {
                "sizeX": 13,
                "sizeY": 8,
                "row": 5,
                "col": 13
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lms01-lb": {
        "name": "lms01-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "eff71502-5acc-f604-3346-80d669678eb5": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "35de5042-0c3d-edc8-3f1c-1c345c798ee9": {
                "sizeX": 12,
                "sizeY": 6,
                "row": 0,
                "col": 8
              },
              "2e1255b0-3a06-fa8a-031e-9465cf7ddeaf": {
                "sizeX": 12,
                "sizeY": 6,
                "row": 6,
                "col": 8
              },
              "05df10f1-9aee-0217-3d17-4a11498eac26": {
                "sizeX": 10,
                "sizeY": 12,
                "row": 0,
                "col": 20
              },
              "1ab7082e-ccaa-fba6-570a-84d24cf164de": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "d24fb243-6a36-e08c-59b6-3f08e67b61f2": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lht65n-pir": {
        "name": "lht65n-pir",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "52950102-5761-3ff9-aabb-34b2e9c2d3e5": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "6c02d952-e213-61a5-92c9-c22ed804de08": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "6a66d5a6-5d40-9057-2a6d-dcec8ee236e5": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              },
              "d5954543-fe0f-90bc-35b1-23e93764782a": {
                "sizeX": 15,
                "sizeY": 4,
                "row": 0,
                "col": 8
              },
              "e3f4c0d4-52f2-07fe-4620-58f6954e81f9": {
                "sizeX": 15,
                "sizeY": 4,
                "row": 4,
                "col": 8
              },
              "e7dd71c0-e653-e444-e7b8-b94c43c2e804": {
                "sizeX": 15,
                "sizeY": 4,
                "row": 8,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lht65n-vib": {
        "name": "lht65n-vib",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "720f7cc9-d1fd-2c3c-258a-d2c4c6fa13ef": {
                "sizeX": 8,
                "sizeY": 6,
                "row": 0,
                "col": 0
              },
              "04de18c3-5af4-f836-3736-a0f178010f45": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 6,
                "col": 0
              },
              "512fd320-61bc-4f7a-f760-d1863f6449fa": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 6,
                "col": 4
              },
              "aff84643-cf5d-6777-775b-574d865a3fc7": {
                "sizeX": 14,
                "sizeY": 3,
                "row": 0,
                "col": 8
              },
              "12d95c6b-89df-84f1-f7a1-2e03deb985b1": {
                "sizeX": 14,
                "sizeY": 3,
                "row": 3,
                "col": 8
              },
              "cc036095-74c9-7b96-a86a-0be2be523c15": {
                "sizeX": 14,
                "sizeY": 6,
                "row": 6,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "llds12": {
        "name": "llds12",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "3bc339a8-5489-0d7d-6773-4cf0339b9445": {
                "sizeX": 11,
                "sizeY": 7,
                "row": 0,
                "col": 0
              },
              "1dc2ab7e-06e2-3cb0-e469-7b18c7161550": {
                "sizeX": 5,
                "sizeY": 7,
                "row": 0,
                "col": 11
              },
              "5d72aee7-7dd1-6324-7b73-c5c48324d704": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 0,
                "col": 16
              },
              "033c46d0-2dc8-4980-9817-c599c5e3d645": {
                "sizeX": 10,
                "sizeY": 7,
                "row": 0,
                "col": 20
              },
              "96118403-adc8-bd7f-4d52-9f117b79a56c": {
                "sizeX": 11,
                "sizeY": 9,
                "row": 7,
                "col": 0
              },
              "f32f60ed-8964-0260-69b2-5a6afc9fa563": {
                "sizeX": 12,
                "sizeY": 9,
                "row": 7,
                "col": 11
              },
              "7248d971-a36b-6839-ded8-c947d9ab18a1": {
                "sizeX": 7,
                "sizeY": 5,
                "row": 7,
                "col": 23
              },
              "9ece8417-39ee-86c2-e369-25259efcc4e4": {
                "sizeX": 7,
                "sizeY": 4,
                "row": 12,
                "col": 23
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "llms01": {
        "name": "llms01",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "0bb93756-40ff-be56-9e28-a237452b030c": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "1e1fffb2-da80-3757-16b3-390c87e1d9de": {
                "sizeX": 12,
                "sizeY": 6,
                "row": 0,
                "col": 8
              },
              "3a5b6eaa-441c-4081-a591-cc89bc22a1c7": {
                "sizeX": 10,
                "sizeY": 12,
                "row": 0,
                "col": 20
              },
              "7fdae257-3e1a-87ef-5e78-0692a0cce2bf": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "280831d3-e184-1e6e-6b29-e3dc221a04c6": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              },
              "a1dd3677-e7e8-e248-57f6-c6208e3afb86": {
                "sizeX": 12,
                "sizeY": 6,
                "row": 6,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "llds40": {
        "name": "llds40",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "4ba6c01f-41e9-874b-1ec3-351bd5629074": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "cd1bbbc2-a496-d1a9-cf3b-653c1f16392e": {
                "sizeX": 6,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "2780fb7d-fb4f-e469-71cd-b18cf9aa078e": {
                "sizeX": 5,
                "sizeY": 5,
                "row": 0,
                "col": 14
              },
              "9693b578-8f07-15fd-a0de-f7de3d66cbfe": {
                "sizeX": 5,
                "sizeY": 5,
                "row": 0,
                "col": 19
              },
              "09e1749e-26d1-52c3-75ec-54e8e9f8a097": {
                "sizeX": 5,
                "sizeY": 5,
                "row": 0,
                "col": 24
              },
              "049920b5-d3ff-fe44-305a-b09e4f3ab5e8": {
                "sizeX": 8,
                "sizeY": 9,
                "row": 5,
                "col": 0
              },
              "8b494418-cc2e-6bd6-2512-56f9f0904301": {
                "sizeX": 11,
                "sizeY": 9,
                "row": 5,
                "col": 8
              },
              "4e996b3e-307b-6220-4adf-c8ba1b51466a": {
                "sizeX": 10,
                "sizeY": 9,
                "row": 5,
                "col": 19
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lmds120": {
        "name": "lmds120",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "7ae48771-3439-ad9c-b809-3be795bdfff5": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "b28846dc-6378-d8ed-20f9-b83796b90fb1": {
                "sizeX": 14,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "7f65ef65-2ac9-833e-0530-31df252461d6": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "d2dab67c-0293-66f8-b007-24a011eb0bbf": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              },
              "1e3f4656-53ad-e657-a345-9eeec671f36e": {
                "sizeX": 14,
                "sizeY": 7,
                "row": 5,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lse01-114": {
        "name": "lse01-114",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "93cf9ebf-96ad-8a47-c1b4-6c0fabf9c9c4": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "dbfdb0bb-c850-ec33-6ecc-f219ba91bc3c": {
                "sizeX": 9,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "30a91c42-096e-7767-6ee6-a9efa789aec2": {
                "sizeX": 9,
                "sizeY": 5,
                "row": 0,
                "col": 17
              },
              "9b64dc83-4a4f-07af-8f48-99be77cbe616": {
                "sizeX": 4,
                "sizeY": 8,
                "row": 5,
                "col": 0
              },
              "34ebbde5-c3ef-6cb5-0800-2b8d231be123": {
                "sizeX": 4,
                "sizeY": 8,
                "row": 5,
                "col": 4
              },
              "895cf7ad-1289-ce24-f444-af6422951958": {
                "sizeX": 5,
                "sizeY": 4,
                "row": 5,
                "col": 8
              },
              "df149aa6-a63a-a3de-1982-9e937a490bfc": {
                "sizeX": 5,
                "sizeY": 4,
                "row": 9,
                "col": 8
              },
              "1c49297b-c3ad-efa6-d124-a6522fed55f6": {
                "sizeX": 13,
                "sizeY": 8,
                "row": 5,
                "col": 13
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lmds200": {
        "name": "lmds200",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "9cf4d2c9-a9e2-9524-e6f6-f1f664a9a3da": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "28d95d9b-db8c-3425-7826-455c8dc2bcef": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "5d53011a-dedf-b37f-ba0a-b52a3cbfc325": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 16
              },
              "7086ba9b-30c9-30ea-b195-458e6c29e989": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "7bcdd733-9f90-5e0c-7877-8664d0b9d3c8": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              },
              "8c82aff0-73d5-2619-5049-60945d58d8d6": {
                "sizeX": 16,
                "sizeY": 7,
                "row": 5,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lsn50v2": {
        "name": "lsn50v2",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "5a4afcc9-dc30-abde-334d-ce33188491ca": {
                "sizeX": 8,
                "sizeY": 6,
                "row": 0,
                "col": 0
              },
              "03698dcb-0ed2-b4a0-1052-29b5e3134c04": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 6,
                "col": 0
              },
              "e4e265ff-028d-95f8-4211-02d01fdf7fff": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 6,
                "col": 4
              },
              "b54990ef-2ad2-c56b-e434-d1941de9faee": {
                "sizeX": 14,
                "sizeY": 3,
                "row": 0,
                "col": 8
              },
              "89f6798e-71a7-ce20-1bea-af398a0181b7": {
                "sizeX": 14,
                "sizeY": 3,
                "row": 3,
                "col": 8
              },
              "f963724b-721f-0a38-73b2-216f921069ed": {
                "sizeX": 14,
                "sizeY": 6,
                "row": 6,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lse01": {
        "name": "lse01",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "e677d189-bb55-be48-fef5-976e5f4d8f8e": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "cfad16d1-c2aa-0b4b-25ca-d2d835aece09": {
                "sizeX": 9,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "6f4bc0c0-10de-56ea-e49d-8d1d52e4e360": {
                "sizeX": 9,
                "sizeY": 5,
                "row": 0,
                "col": 17
              },
              "0adacc79-814b-4880-a9eb-eb9aedf9df8d": {
                "sizeX": 4,
                "sizeY": 8,
                "row": 5,
                "col": 0
              },
              "cae836a4-8ac9-7f59-2c6a-13d75754425a": {
                "sizeX": 4,
                "sizeY": 8,
                "row": 5,
                "col": 4
              },
              "9b126759-eb9a-8db7-e5ef-6a868c15f7fb": {
                "sizeX": 5,
                "sizeY": 4,
                "row": 5,
                "col": 8
              },
              "4484ee16-aac0-7e5b-20fd-cbd4f4107775": {
                "sizeX": 5,
                "sizeY": 4,
                "row": 9,
                "col": 8
              },
              "d53ec5fe-271f-1e0b-adb3-cfa11ba7ecf1": {
                "sizeX": 13,
                "sizeY": 8,
                "row": 5,
                "col": 13
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lsn50v2-8": {
        "name": "lsn50v2-8",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "018bfa29-d82f-fea1-9bec-1c372c1ea53d": {
                "sizeX": 8,
                "sizeY": 6,
                "row": 0,
                "col": 0
              },
              "4c32b04d-ab4a-7618-bea3-7f0349f103a9": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 6,
                "col": 0
              },
              "793caac8-1bbf-bf33-88b0-f825e2def353": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 6,
                "col": 4
              },
              "41c4c0ae-03c7-967d-f3f0-c6600ee5987a": {
                "sizeX": 14,
                "sizeY": 3,
                "row": 0,
                "col": 8
              },
              "b61ca809-1fec-eb8e-a3f9-717125c5f345": {
                "sizeX": 14,
                "sizeY": 3,
                "row": 3,
                "col": 8
              },
              "a23f15ce-a59b-cf91-dce6-7270dc0ef6cf": {
                "sizeX": 14,
                "sizeY": 6,
                "row": 6,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lsn50v2-d22": {
        "name": "lsn50v2-d22",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "a50526c8-01c2-0c15-65cb-c42236684683": {
                "sizeX": 8,
                "sizeY": 7,
                "row": 0,
                "col": 0
              },
              "a3665d9f-6eac-5dfd-0b47-7501d5345260": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 7,
                "col": 0
              },
              "c05609de-8904-edce-663a-257e6fe834a3": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 7,
                "col": 4
              },
              "2631bf10-4728-9e71-1ed6-be4c568fc493": {
                "sizeX": 14,
                "sizeY": 7,
                "row": 0,
                "col": 8
              },
              "4d439b53-4373-f9c1-3577-5243265fb242": {
                "sizeX": 14,
                "sizeY": 5,
                "row": 7,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lsn50v2-d23": {
        "name": "lsn50v2-d23",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "77e1d391-1b06-12a2-005f-696e87e4fb50": {
                "sizeX": 8,
                "sizeY": 7,
                "row": 0,
                "col": 0
              },
              "68ac98db-fb5c-d9cd-200a-7abb5a967d1f": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 7,
                "col": 0
              },
              "5f9e3409-89d4-c4c1-0a3f-90df9e111a01": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 7,
                "col": 4
              },
              "b174d732-2d36-51b2-2bf2-9565366c067a": {
                "sizeX": 14,
                "sizeY": 7,
                "row": 0,
                "col": 8
              },
              "398ab999-5019-8f6f-b50c-e4519c101271": {
                "sizeX": 14,
                "sizeY": 5,
                "row": 7,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lt22222-l": {
        "name": "lt22222-l",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "319efbca-05ee-bfd5-1489-8e2d08d6557f": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "7543b93e-fd68-dfcb-c5d9-eda2a6e05bd6": {
                "sizeX": 16,
                "sizeY": 11,
                "row": 0,
                "col": 8
              },
              "749c72a1-ae2c-660b-dd96-a94e0065fc44": {
                "sizeX": 8,
                "sizeY": 2,
                "row": 5,
                "col": 0
              },
              "8979938f-bca7-3b6e-6ba2-75f4bca4b3ca": {
                "sizeX": 8,
                "sizeY": 2,
                "row": 7,
                "col": 0
              },
              "b6c262d1-92ef-61f7-c7b1-6d726919655e": {
                "sizeX": 8,
                "sizeY": 2,
                "row": 9,
                "col": 0
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "ltc2-lb": {
        "name": "ltc2-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "ebfa508c-0487-123d-6b86-ecb2097d894b": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "588ab57a-6e49-a106-207f-2391fa3a6219": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "4bd682be-34d2-f321-30db-134f5ca1f4fb": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              },
              "cba59f1a-305e-5ad6-4db6-43b3cc4c1205": {
                "sizeX": 10,
                "sizeY": 12,
                "row": 0,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "ltc2": {
        "name": "ltc2",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "83690017-8c30-26fd-8085-e38189dc3392": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "0bbd2e89-a82c-bb19-edbd-5bb2c693e9a2": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "d80fd278-ee46-fafc-1556-e7366ee2b950": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              },
              "e66a7b43-fd93-701c-0dc5-3d6a2b1549b3": {
                "sizeX": 10,
                "sizeY": 12,
                "row": 0,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lt33222-l": {
        "name": "lt33222-l",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "95ef58c9-71aa-7c71-4af5-aec492b153d1": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "a7f5d5b1-0c6b-9228-8b3d-58d8a85af214": {
                "sizeX": 16,
                "sizeY": 11,
                "row": 0,
                "col": 8
              },
              "48788b4b-d350-9901-ef2f-314c7d8cecc8": {
                "sizeX": 8,
                "sizeY": 2,
                "row": 5,
                "col": 0
              },
              "9ce89254-1332-762c-ada3-7dc85caed131": {
                "sizeX": 8,
                "sizeY": 2,
                "row": 7,
                "col": 0
              },
              "f9793b84-1eda-f125-3155-62923fa3018a": {
                "sizeX": 8,
                "sizeY": 2,
                "row": 9,
                "col": 0
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lwl02": {
        "name": "lwl02",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "73de180d-3552-13cc-c2d2-51aceb945d40": {
                "sizeX": 5,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "32e28923-65d0-214d-0d27-699c8fdf4d29": {
                "sizeX": 5,
                "sizeY": 5,
                "row": 5,
                "col": 0
              },
              "59dab390-70cf-00a4-abbe-56137f16d6c4": {
                "sizeX": 5,
                "sizeY": 5,
                "row": 10,
                "col": 0
              },
              "d52b3c67-6ae5-92d4-b68f-2741c7e4ce19": {
                "sizeX": 5,
                "sizeY": 15,
                "resizable": true,
                "row": 0,
                "col": 5
              },
              "d4f7175c-3f33-4931-69a6-c8213a76faef": {
                "sizeX": 5,
                "sizeY": 15,
                "row": 0,
                "col": 10
              },
              "23b953a5-2d3d-cd22-8893-0e1de0ec634e": {
                "sizeX": 5,
                "sizeY": 15,
                "row": 0,
                "col": 15
              },
              "479a0271-b64a-e594-2935-a3b350f5a460": {
                "sizeX": 5,
                "sizeY": 15,
                "row": 0,
                "col": 20
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lsn50v2-d20": {
        "name": "lsn50v2-d20",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "ddcd6bff-a940-5171-342f-6a0b165001c6": {
                "sizeX": 8,
                "sizeY": 7,
                "row": 0,
                "col": 0
              },
              "aab05e7a-bfb8-6e80-55c9-7aad9eec0486": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 7,
                "col": 0
              },
              "6c399bf0-448c-b318-4b1e-547522d4143f": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 7,
                "col": 4
              },
              "4fb8a8ac-7160-cb7f-6ff1-baa7447f3a45": {
                "sizeX": 14,
                "sizeY": 7,
                "row": 0,
                "col": 8
              },
              "8c464724-1f0f-a52e-8b9d-d0ac2aaf1a38": {
                "sizeX": 14,
                "sizeY": 5,
                "row": 7,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lsph01": {
        "name": "lsph01",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "77e56042-e749-dc16-7854-db18b2c9afa0": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "6f2a2218-b161-5272-7d45-6cae206ae581": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "0e80808d-657d-17fc-1f1a-9199dbbeac33": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 16
              },
              "9d2d5fab-f829-9279-0ace-d34a1875a3a0": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "a649c430-6fe3-c552-975b-4f477c8afa7b": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              },
              "5cc31ccb-49b6-b535-0a0f-68bdf9f18ebd": {
                "sizeX": 16,
                "sizeY": 7,
                "row": 5,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "mds120-lb": {
        "name": "mds120-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "097062b9-2eef-efdc-ccd6-2f77c71b923e": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "9f5315b5-4e8b-b724-7c72-472b314bde55": {
                "sizeX": 14,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "60015671-184f-7b7b-9685-c29ecaf73aa4": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "e2efb4c1-cf9d-5f46-f065-e28e2d26c2a3": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              },
              "66e0ca00-a5bc-f893-04d6-e3f57c668265": {
                "sizeX": 14,
                "sizeY": 7,
                "row": 5,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "mds200-lb": {
        "name": "mds200-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "7e2b7c29-5407-5760-09b6-cfd711979a97": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "9a664414-9ef0-8eb0-a999-bc6ed0d7f995": {
                "sizeX": 14,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "8674fc17-0243-cf6e-3c1c-05a290132070": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "b5bbb8e3-4ad5-e7d0-cfcd-a44b4392f88f": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              },
              "26c9b82d-7de9-2852-8916-0973e142dfe3": {
                "sizeX": 14,
                "sizeY": 7,
                "row": 5,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "pb01-l": {
        "name": "pb01-l",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "aac26a7e-fee9-a95d-11f9-36f63a82ed6f": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "2b502e97-f9c0-7ed5-1825-d3bb92f1cdf7": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 0
              },
              "60090ae2-1331-8465-cf8b-331c9dc9769c": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 4
              },
              "00a501c6-9560-3cd6-262e-174f48bff3b3": {
                "sizeX": 3,
                "sizeY": 5,
                "row": 0,
                "col": 19
              },
              "7343ce5e-607c-480f-1068-b3c1682df248": {
                "sizeX": 14,
                "sizeY": 6,
                "row": 5,
                "col": 8
              },
              "b2a7c8fe-ee51-f85a-e15a-87d6d1d035fc": {
                "sizeX": 11,
                "sizeY": 5,
                "row": 0,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "ps-lb": {
        "name": "ps-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "93d3c518-e47d-8269-266b-daadb41a00d8": {
                "sizeX": 16,
                "sizeY": 8,
                "row": 5,
                "col": 0
              },
              "f812fb0d-89d2-829f-f0be-69a198ad9477": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "ed1cf55d-0912-0b66-0f4e-0fe3903b055d": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "7de6cbef-eaf4-3a5b-ec00-86945993cc3c": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 0,
                "col": 12
              },
              "c5217d0a-42e0-7ac9-6f0a-8a44d189fbe2": {
                "sizeX": 5,
                "sizeY": 5,
                "row": 0,
                "col": 16
              },
              "82acff71-0984-9b6e-2971-5586266449a5": {
                "sizeX": 5,
                "sizeY": 8,
                "row": 5,
                "col": 16
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "rs485-bl": {
        "name": "rs485-bl",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "f0aed422-480f-6d60-f550-29328f78b5f9": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "a51c4b41-68f4-5ad0-fd04-f08a07ad7a1b": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 0
              },
              "e966bd1f-1831-e3a6-3186-fbb9ed5c2445": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 4
              },
              "707c2410-1245-ee12-1c05-129919ffb1d0": {
                "sizeX": 14,
                "sizeY": 11,
                "row": 0,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "rs485-lb": {
        "name": "rs485-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "cc0a65ca-26c0-13ca-403e-0b364658d8a3": {
                "sizeX": 14,
                "sizeY": 11,
                "row": 0,
                "col": 8
              },
              "c3d730e5-ba81-5bb9-1cc9-774fe316d168": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "f5d1d599-8c77-9cd5-d442-67a7b99408b4": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 0
              },
              "e5e1fb0a-20b7-cfc5-6204-7d60247a738c": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 4
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lsn50": {
        "name": "lsn50",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "c070c586-486c-bda7-b5e4-11284c65895e": {
                "sizeX": 8,
                "sizeY": 6,
                "row": 0,
                "col": 0
              },
              "37e9366d-6755-afd4-084d-f8450d829ca1": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 6,
                "col": 0
              },
              "de6bd02f-3b5f-2ed7-64a8-4527fd08addc": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 6,
                "col": 4
              },
              "1dc73306-fa93-3b7c-e1a8-0df273b95c3a": {
                "sizeX": 14,
                "sizeY": 3,
                "row": 0,
                "col": 8
              },
              "54cbdb10-ca4f-7fe6-5328-b2ca3a793af8": {
                "sizeX": 14,
                "sizeY": 3,
                "row": 3,
                "col": 8
              },
              "090e0ba1-c147-69d9-273c-bfbdf91f3c16": {
                "sizeX": 14,
                "sizeY": 6,
                "row": 6,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lsn50v2-s31": {
        "name": "lsn50v2-s31",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "e52e73e5-8759-59a1-2572-ca63a479595e": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "ebb096d6-a4f3-d425-add6-79e8fa8929ba": {
                "sizeX": 12,
                "sizeY": 6,
                "row": 0,
                "col": 8
              },
              "2333e241-7f74-59cb-8305-1ad802373433": {
                "sizeX": 12,
                "sizeY": 6,
                "row": 6,
                "col": 8
              },
              "29928b11-55be-c50d-1deb-50fa6e8630f4": {
                "sizeX": 10,
                "sizeY": 12,
                "row": 0,
                "col": 20
              },
              "18b0602f-c829-5ca1-15d6-55abefebcb14": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "99864b1b-27d7-874c-7342-a7235e06eef7": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lsnpk01": {
        "name": "lsnpk01",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "c765a04e-ac43-3d10-1af0-03a95bc5b5b4": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "bb06243f-63c4-4675-8c53-7dff335a0b64": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 5,
                "col": 0
              },
              "fe30dd81-70ec-1a85-4534-30ac6dd15dee": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 5,
                "col": 4
              },
              "96cc9c4f-5c70-1e7d-6ad3-b87eb8e1e0d5": {
                "sizeX": 13,
                "sizeY": 10,
                "row": 0,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lwl03a": {
        "name": "lwl03a",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "e04494b5-0442-4892-639f-79bc32256f1f": {
                "sizeX": 5,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "adefbbed-95df-5e3e-be06-730622055dd1": {
                "sizeX": 5,
                "sizeY": 5,
                "row": 5,
                "col": 0
              },
              "49970e15-c4f8-03d0-621f-149370fe213d": {
                "sizeX": 5,
                "sizeY": 5,
                "row": 10,
                "col": 0
              },
              "c0477843-0e9d-fe83-aa27-f98e89361619": {
                "sizeX": 5,
                "sizeY": 15,
                "resizable": true,
                "row": 0,
                "col": 5
              },
              "d6bb3ece-bc81-26de-cdb5-2aa068ff54ae": {
                "sizeX": 5,
                "sizeY": 15,
                "row": 0,
                "col": 10
              },
              "f6b4a0fc-7e20-d7e3-0fec-709becda4e29": {
                "sizeX": 5,
                "sizeY": 15,
                "row": 0,
                "col": 15
              },
              "37d7fe36-ccc9-d750-c190-4d0f40ca442a": {
                "sizeX": 5,
                "sizeY": 15,
                "row": 0,
                "col": 20
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "lwl04-lb": {
        "name": "lwl04-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "2728c9c3-10d5-f5aa-60d5-0be09e90f0c0": {
                "sizeX": 5,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "1792e92c-59b8-11db-8fd0-7873c50f3f55": {
                "sizeX": 5,
                "sizeY": 5,
                "row": 5,
                "col": 0
              },
              "b1f4f04d-0e72-efc7-0d54-f9d16c0061e3": {
                "sizeX": 5,
                "sizeY": 5,
                "row": 10,
                "col": 0
              },
              "88bf20ef-d26d-57b0-7859-1db785b63e71": {
                "sizeX": 5,
                "sizeY": 15,
                "resizable": true,
                "row": 0,
                "col": 5
              },
              "4e32279a-05c2-5e12-b3aa-743ce88c9e3f": {
                "sizeX": 5,
                "sizeY": 15,
                "row": 0,
                "col": 10
              },
              "9ed36d43-bc47-b7c8-6a06-870e31f73e1a": {
                "sizeX": 5,
                "sizeY": 15,
                "row": 0,
                "col": 15
              },
              "3b3d5a52-2f78-9eb8-1989-06798938b471": {
                "sizeX": 5,
                "sizeY": 15,
                "row": 0,
                "col": 20
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "rs485-ln": {
        "name": "rs485-ln",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "4e756b27-4f46-2fb8-7b4e-1a3ddc130837": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "16033121-10c1-ef4e-3e25-270571af421c": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 0
              },
              "1f54e0f6-3414-3bae-f54f-f824c07bb6f6": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 4
              },
              "9a3fe169-07ea-b1de-8a68-2ef70636e5fb": {
                "sizeX": 14,
                "sizeY": 11,
                "row": 0,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "s31-l": {
        "name": "s31-l",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "097a1ef5-0e8b-3c24-29e9-94b3d8ed8b40": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "0fb37393-ca69-d17c-9071-4f6491b04e66": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "b984b4f6-c347-9c56-7bdc-9e78d287d4b3": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 16
              },
              "52854188-8bab-29ff-0656-83cfd37cf2de": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 0
              },
              "80ac2860-02d4-9b85-4120-274429f51beb": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 4
              },
              "df87e64c-0435-4919-136b-38785234f73c": {
                "sizeX": 16,
                "sizeY": 6,
                "row": 5,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "se02-lb": {
        "name": "se02-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "7399a882-c1e9-c109-a02a-31b37c5f3671": {
                "sizeX": 13,
                "sizeY": 8,
                "row": 5,
                "col": 13
              },
              "8ec81390-19fc-5440-ac99-db94d6a1d4a7": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "0ca0607f-f279-4270-4723-0dc4d5480366": {
                "sizeX": 9,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "cd0eb3d1-ba90-7299-206e-bc64793303d0": {
                "sizeX": 9,
                "sizeY": 5,
                "row": 0,
                "col": 17
              },
              "79a83879-bfef-e0ae-459d-d93b5e401036": {
                "sizeX": 4,
                "sizeY": 8,
                "row": 5,
                "col": 0
              },
              "ecbeb8c5-c57e-03fb-35ec-c853083e94e7": {
                "sizeX": 4,
                "sizeY": 8,
                "row": 5,
                "col": 4
              },
              "bac094dc-fc34-b209-41c6-9571709d70b5": {
                "sizeX": 5,
                "sizeY": 4,
                "row": 5,
                "col": 8
              },
              "d8b3c760-fb74-70e4-6824-9be04b9b97af": {
                "sizeX": 5,
                "sizeY": 4,
                "row": 9,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "se01-lb": {
        "name": "se01-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "22ca142d-6a34-4675-0984-5df1ddfbae5d": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "6cff576f-a465-1cec-9176-eed961f321d3": {
                "sizeX": 9,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "ac357574-8cd9-d313-8141-18f82091e808": {
                "sizeX": 9,
                "sizeY": 5,
                "row": 0,
                "col": 17
              },
              "b6c48cd0-32f4-f9c1-153e-25977c1a08c1": {
                "sizeX": 4,
                "sizeY": 8,
                "row": 5,
                "col": 0
              },
              "ea4efe29-b0d1-8a3f-ee6e-bfb6da5f3d9e": {
                "sizeX": 4,
                "sizeY": 8,
                "row": 5,
                "col": 4
              },
              "511238dc-3814-908f-0f1f-3fb5bbdb0d45": {
                "sizeX": 5,
                "sizeY": 4,
                "row": 5,
                "col": 8
              },
              "9626529c-0452-d33b-af8e-5780f9539b6a": {
                "sizeX": 5,
                "sizeY": 4,
                "row": 9,
                "col": 8
              },
              "1288d159-af84-333f-5c6a-2a72a6d16e92": {
                "sizeX": 13,
                "sizeY": 8,
                "row": 5,
                "col": 13
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "sdi-12-lb": {
        "name": "sdi-12-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "f00abec7-413e-cc61-eebe-84cb1cbc3512": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "0a74343f-4546-78c4-b147-e9389d4c9444": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 0
              },
              "1d104917-dd9c-6497-16cb-c9a66161ff1c": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 4
              },
              "be99d622-bcdb-0d46-f2fa-af1d464eb085": {
                "sizeX": 14,
                "sizeY": 11,
                "row": 0,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "s31b-l": {
        "name": "s31b-l",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "c76fa06b-4e50-e3e3-a742-fd65cec51ccf": {
                "sizeX": 10,
                "sizeY": 6,
                "row": 0,
                "col": 0
              },
              "f9e1cb80-c13a-ef95-b009-1f3602e56d06": {
                "sizeX": 5,
                "sizeY": 6,
                "row": 6,
                "col": 0
              },
              "6dba5b2b-3eac-7085-25fe-a03b543d5073": {
                "sizeX": 5,
                "sizeY": 6,
                "row": 6,
                "col": 5
              },
              "7d105d8c-58c5-40fa-7122-6325a09db820": {
                "sizeX": 9,
                "sizeY": 6,
                "row": 0,
                "col": 10
              },
              "d5221a2f-7d85-41d1-09b3-3dacaabdec9e": {
                "sizeX": 9,
                "sizeY": 6,
                "row": 6,
                "col": 10
              },
              "0af53d65-8e68-9126-846a-64ab5e051c44": {
                "sizeX": 10,
                "sizeY": 12,
                "row": 0,
                "col": 19
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "sac01-l": {
        "name": "sac01-l",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "2cc9cf98-6dc8-a102-96f8-59f61951da0e": {
                "sizeX": 13,
                "sizeY": 10,
                "row": 0,
                "col": 8
              },
              "9b34b869-12b5-fc79-93d0-081da23ba602": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "6b9222db-0670-e28c-a170-dd212d58f5c6": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 5,
                "col": 0
              },
              "5ac4f035-81e8-192e-0865-b20c5aaf8639": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 5,
                "col": 4
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "sph01-lb": {
        "name": "sph01-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "d4c524d6-d100-b4d4-01fb-7a198b94facf": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "6c3d21dd-4f37-e428-8e9f-4c652fcaa604": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "de264e45-c8d1-38af-f038-d48a7194acee": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 16
              },
              "d676500d-f6ae-1f94-d43b-26c1bd07c8bb": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "e5fe7270-fcea-4c3b-a841-4040e6fa1de5": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              },
              "3574171a-40bb-0ea9-96f3-63e79c893480": {
                "sizeX": 16,
                "sizeY": 7,
                "row": 5,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "ts01-lb": {
        "name": "ts01-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "40646068-4804-cf34-bcb3-93629fcc3f5e": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "264be053-ca43-2cd2-0ae2-3c3efa2a05fd": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "30c022a2-902d-ddfa-fbfc-ce6d28bd2a54": {
                "sizeX": 9,
                "sizeY": 12,
                "row": 0,
                "col": 16
              },
              "99f100cd-46f1-4a3f-b9b1-c752b52e0fd0": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 0
              },
              "539254bc-b8fd-33f1-69bd-064b87c86bfc": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 4
              },
              "a29ae1cf-d233-10c6-18a0-599045d49e14": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 8
              },
              "f955fff0-3378-4cc0-b796-1f7fdfd33d1f": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 5,
                "col": 12
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "uv254-lb": {
        "name": "uv254-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "a2d87de4-0c66-f486-0bc9-15e6cf7a74cc": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 5,
                "col": 4
              },
              "a4c3d8b8-5272-eeff-759f-37ab95e49bf9": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 5,
                "col": 0
              },
              "0c090cd6-1907-2a5f-aabc-88e7521dbd3d": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "b8b3ae97-122e-4438-2464-3604d4286def": {
                "sizeX": 15,
                "sizeY": 10,
                "row": 0,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "trackerd": {
        "name": "trackerd",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "53f78a76-45a4-8c56-abbd-090716229c11": {
                "sizeX": 8,
                "sizeY": 4,
                "row": 0,
                "col": 0
              },
              "e6193ae7-e0ea-7787-9610-0632b0d0d274": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 4,
                "col": 0
              },
              "acace7c9-c0c2-4943-cb3c-b9d0d185abe6": {
                "sizeX": 4,
                "sizeY": 7,
                "row": 4,
                "col": 4
              },
              "1673d3b7-ef91-e177-893b-8f3e02a2ac8a": {
                "sizeX": 8,
                "sizeY": 4,
                "row": 0,
                "col": 8
              },
              "769a9e42-b81f-1ea9-2ac6-546ca23c1f5a": {
                "sizeX": 8,
                "sizeY": 4,
                "row": 0,
                "col": 16
              },
              "9b3434c5-6f45-ac3a-624a-aee2963ad765": {
                "sizeX": 16,
                "sizeY": 7,
                "row": 4,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "tc01-lb": {
        "name": "tc01-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "0aed3d24-52cb-eb60-2d83-7b0fb106ce39": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "e15add3a-eb6c-f467-9491-dc1ac2407f50": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 8
              },
              "2d799a23-46ce-4dfe-26eb-332ffeb48f53": {
                "sizeX": 12,
                "sizeY": 11,
                "row": 0,
                "col": 16
              },
              "2ce10e83-d63b-72f3-4726-6320c1e4d90d": {
                "sizeX": 8,
                "sizeY": 6,
                "row": 5,
                "col": 8
              },
              "67518ddf-a6c1-e05f-c10e-c452c5b6c87b": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 0
              },
              "662137fe-5962-71a6-1d95-d8e3f4278422": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 4
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "sw3l-l": {
        "name": "sw3l-l",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "d8341411-3468-1e61-ebf4-013d699ef0a0": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "981d69d6-5343-acb8-495f-fc25ed377165": {
                "sizeX": 7,
                "sizeY": 3,
                "row": 0,
                "col": 8
              },
              "7e000efe-860a-687c-924a-559553428eba": {
                "sizeX": 4,
                "sizeY": 3,
                "row": 0,
                "col": 15
              },
              "40b69c2a-7cf5-9f19-d6fe-2962825ccc35": {
                "sizeX": 4,
                "sizeY": 3,
                "row": 0,
                "col": 19
              },
              "a32da11e-be14-1611-1a32-6e5cc8099d24": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 0
              },
              "0102add1-26c5-edb9-d520-441b1bbd758c": {
                "sizeX": 4,
                "sizeY": 6,
                "row": 5,
                "col": 4
              },
              "a05c9acf-4539-8650-10f1-37122774fb22": {
                "sizeX": 15,
                "sizeY": 8,
                "row": 3,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      },
      "sn50v3-lb": {
        "name": "sn50v3-lb",
        "root": false,
        "layouts": {
          "main": {
            "widgets": {
              "2dad0458-51a8-9166-c033-86d633d3efc2": {
                "sizeX": 8,
                "sizeY": 5,
                "row": 0,
                "col": 0
              },
              "e01c0ac0-26e0-7472-23c9-34690ff5bcc7": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 5,
                "col": 0
              },
              "d276c54c-a81f-926f-2624-b0ef0305d5e3": {
                "sizeX": 4,
                "sizeY": 5,
                "row": 5,
                "col": 4
              },
              "314b1323-417f-1fe9-8bc5-3c0145e9bc92": {
                "sizeX": 13,
                "sizeY": 10,
                "row": 0,
                "col": 8
              }
            },
            "gridSettings": {
              "layoutType": "default",
              "backgroundColor": "#eeeeee",
              "columns": 24,
              "margin": 10,
              "outerMargin": true,
              "backgroundSizeMode": "100%"
            }
          }
        }
      }
    },
    "entityAliases": {
      "adf15d69-d5da-bfe3-57e1-3ee65ef5c03c": {
        "id": "adf15d69-d5da-bfe3-57e1-3ee65ef5c03c",
        "alias": "Dragino Share Devices",
        "filter": {
          "type": "entitiesByGroupName",
          "resolveMultiple": true,
          "groupStateEntity": false,
          "stateEntityParamName": null,
          "groupType": "DEVICE",
          "entityGroupNameFilter": "LoRa Share Products"
        }
      },
      "dfb538a3-1cbf-5aae-a06f-6caec3b456dc": {
        "id": "dfb538a3-1cbf-5aae-a06f-6caec3b456dc",
        "alias": "Entity",
        "filter": {
          "type": "stateEntity",
          "resolveMultiple": false,
          "stateEntityParamName": null,
          "defaultStateEntity": null
        }
      },
      "d47772fe-7cb5-91b4-e42e-12754fe20a88": {
        "id": "d47772fe-7cb5-91b4-e42e-12754fe20a88",
        "alias": "Share Entity",
        "filter": {
          "type": "stateEntity",
          "resolveMultiple": null,
          "stateEntityParamName": null,
          "defaultStateEntity": null
        }
      },
      "2fd01e92-0090-1227-c2a0-9b4f3d8290f6": {
        "id": "2fd01e92-0090-1227-c2a0-9b4f3d8290f6",
        "alias": "Water lackage&Door status sensors",
        "filter": {
          "type": "deviceType",
          "resolveMultiple": true,
          "deviceTypes": [
            "Water leakage alarm",
            "Doors status alarm"
          ],
          "deviceNameFilter": ""
        }
      }
    },
    "filters": {},
    "timewindow": {
      "displayValue": "",
      "hideAggregation": false,
      "hideAggInterval": false,
      "hideTimezone": false,
      "selectedTab": 0,
      "realtime": {
        "realtimeType": 0,
        "interval": 1000,
        "timewindowMs": 60000,
        "quickInterval": "CURRENT_DAY",
        "hideInterval": false,
        "hideLastInterval": false,
        "hideQuickInterval": false
      },
      "history": {
        "historyType": 0,
        "interval": 1000,
        "timewindowMs": 60000,
        "fixedTimewindow": {
          "startTimeMs": 1764647322115,
          "endTimeMs": 1764733722115
        },
        "quickInterval": "CURRENT_DAY",
        "hideInterval": false,
        "hideLastInterval": false,
        "hideFixedInterval": false,
        "hideQuickInterval": false
      },
      "aggregation": {
        "type": "AVG",
        "limit": 25000
      }
    },
    "settings": {
      "stateControllerId": "entity",
      "showTitle": false,
      "showDashboardsSelect": true,
      "showEntitiesSelect": true,
      "showDashboardTimewindow": true,
      "showDashboardExport": true,
      "toolbarAlwaysOpen": true
    }
  },
  "name": "Dragino Lora Sensors Overview",
  "resources": [
    {
      "link": "/api/images/system/here_map_system_widget_map_image.svg",
      "title": "\"HERE Map\" system widget map image",
      "type": "IMAGE",
      "subType": "IMAGE",
      "fileName": "here_map_system_widget_map_image.svg",
      "publicResourceKey": "BrmQuyPV27HoNHtyQWvDGnnIFEVh9fYN",
      "mediaType": "image/svg+xml",
      "data": "PHN2ZyBpZD0ic3ZnMiIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTAwIiB3aWR0aD0iMTAwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgdmlld0JveD0iMCAwIDEwMCAxMDAiPgogPGcgaWQ9ImxheWVyMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtOTUyLjM2KSI+CiAgPHJlY3QgaWQ9InJlY3Q0Njg0IiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBoZWlnaHQ9Ijk5LjAxIiB3aWR0aD0iOTkuMDEiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiB5PSI5NTIuODYiIHg9Ii40OTUwNSIgc3Ryb2tlLXdpZHRoPSIuOTkwMTAiIGZpbGw9IiNlZWUiLz4KICA8dGV4dCBpZD0idGV4dDQ2ODYiIHN0eWxlPSJ3b3JkLXNwYWNpbmc6MHB4O2xldHRlci1zcGFjaW5nOjBweDt0ZXh0LWFuY2hvcjptaWRkbGU7dGV4dC1hbGlnbjpjZW50ZXIiIGZvbnQtd2VpZ2h0PSJib2xkIiB4bWw6c3BhY2U9InByZXNlcnZlIiBmb250LXNpemU9IjEwcHgiIGxpbmUtaGVpZ2h0PSIxMjUlIiB5PSI5NzAuNzI4MDkiIHg9IjQ5LjM5NjQ3NyIgZm9udC1mYW1pbHk9IlJvYm90byIgZmlsbD0iIzY2NjY2NiI+PHRzcGFuIGlkPSJ0c3BhbjQ2OTAiIHg9IjUwLjY0NjQ3NyIgeT0iOTcwLjcyODA5Ij5JbWFnZSBiYWNrZ3JvdW5kIDwvdHNwYW4+PHRzcGFuIGlkPSJ0c3BhbjQ2OTIiIHg9IjQ5LjM5NjQ3NyIgeT0iOTgzLjIyODA5Ij5pcyBub3QgY29uZmlndXJlZDwvdHNwYW4+PC90ZXh0PgogIDxyZWN0IGlkPSJyZWN0NDY5NCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgaGVpZ2h0PSIxOS4zNiIgd2lkdGg9IjY5LjM2IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgeT0iOTkyLjY4IiB4PSIxNS4zMiIgc3Ryb2tlLXdpZHRoPSIuNjM5ODYiIGZpbGw9Im5vbmUiLz4KIDwvZz4KPC9zdmc+Cg==",
      "public": true
    },
    {
      "link": "/api/images/system/map_marker_image_0_(1).png",
      "title": "Map marker image 0",
      "type": "IMAGE",
      "subType": "IMAGE",
      "fileName": "map_marker_image_0.png",
      "publicResourceKey": "hX9wlNyPbCGk6WiDzyE1vGZpJXDltT8Z",
      "mediaType": "image/png",
      "data": "iVBORw0KGgoAAAANSUhEUgAAAB4AAAB/CAYAAAD4mHJdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAACWAAAAlgB7MGOJQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAwgSURBVGiB7Zt5cBT3lce/v18fc89oRoPEIRBCHIUxp2ywCAgIxLExvoidZIFNxXE2VXHirIO3aqtSseM43qpNeZfYKecox3bhpJykYgdjDkU2mBAB5vCamMNYAgQyURBCoxnNPd39O/aP7hGSEUR24L/uqqf+zfR77/Pe69/Rv6kWwcgPLRIJfZUAa7xez2xd90QBwDSNZKlkHJHAK+l09mUA7BP4vPpRUVExMVoRef+L998njxx9X57vPi/PnTsnO850yPaT7XLXrrflqjtWymhF+HA0Gp0wEp/kHymEQqG4ptJDGzf+um5RUxMSiV7Z3Lyt88L5nozgHJWj4pGmpqZav99PWve04onHHuswmViQzWb7ruZX+Udgv8/z3A+f/NGye1evxssvb+wo5PMfTZs6bfqcuXNHL7hlweh58+ZVAOTUpk2b0p9dvjyqqmrs/b8ejpUMc+unzjgUCsXjsYruE+2n1JY/NedM0zCi0VjA7/d7/f4AAgE//H4/vF4fOjvP9h5695C/oaEhcN/q1SyTzVdnMpnklXzTq4EplUsXfmaRCgC7du3cOn78+KfGj59Add3z1Md1vV7vqPa2D1sA4MYbZ6qUiqVX9X21i4TQcfX19QCA6urquN/vn0kAPRQKpYbTnzRpUhgAampqAEFrPjVYSql7fD4AgK5r2tV0AcDj8WkAoOk6JJGeTw2+nocLdsEu2AW7YBfsgl2wC3bBLtgFu2AX7IJdsAt2wS7YBbtgF+yCXbALdsEu2AW7YBfsgl2wC76mh/ppjIQgXVloPxVSBRV0rBe455P6+kTKBYF3tonxY/IWarry7DvI298Tgp0PR9RzACaN1NeIS100+EdvKXW3cMZvF8wCK10Sq2it2NAzakmukP/wmoP/KuId3BRUMg5uCfCSNVSKVn1rNto7Un8jLrUVqJ4Fi2eEQiEYBzOsy3SYL37TNQdzi8Q5FxkqJIQBsNLlYMGF/zqAJWBxSEogDAY+DJibYqTuRg4WFgO3OKhCYTExbKk5G/mbkSPP2DQhLA5IO/NhSz1MMP882BDgnAFQwdiVSs2vPVhYDIJLUMkBgw1favM6lJoZDDAYhKbAYsOX+rqAhcXAuQSIAKzhSy2vS8YmB7NYH4WCfM7kw5VaWtdpOO3bfWZJZVXgPxMX898bVsm6RhkTIseX29yyIErm/J5z5vwr6pvmsLYjBgeDwSpVJS/OmT1n1de+9qANZgLc4q9Dyj2qQhUhSSUAUCL7GBcchCymTEYBYNWqVXj30MGHT586PZEJ+WAul7ts8bjspd9QKDRNU2nz4z94YtI3H3oI+XwB//3j/9m77eRUUJ9/0eh4APGoDz6vCi4ksgUTmYyBC4k8RLGwtzF+EGu+tHqRqqrYtm0rXnzhhQ7G5cpsNnvyiuBIJFKnqvSd55772eilS5fhwIH9ye+/dPaEf1T9otW3T8GtiyYgGNBBymYEgLSbvakidu8/h01vnkYhcab1gcVs5tx5c6PHjh7DU0/9qFsINPb3939UZg28X11dXR0Qwtr9g8efqGtc+Bn89re/O7FhR9BXNaFm+n98uxHTZ1SDKQqKAihweZlITUVtXQwNs8fg+Bmzdk+bnmPdf/7bwsbGeO2ECaED+9/5XCxWuTGbzVpDwJpGNtx+28o77rr7bmzZsu3k7z+cMlHzeiPrvnoTwtVhFAVQHAZY4HBEoiAAeDXUjI/gyJGeQEd6TFj2tHYuXNgYy2azVe0fngiWDLNloHNFo4FZkXDsoTVr1+KD4x8U/3Ci1qP5PV7N74FeFUbClKDEriy57A5JANL5a68hnqoINL8OAPqbXbNp7clTxTVr1/oOHjr0MFXxq2Qy9wEFACnoY//6la9QAHj+9Q/eUL2RWkVXoWgqkhZBypRImkDKBFIWkLIk+h1JWdL+zrmeNCWSDFB0DYquQvWG637TcnozAKxbt45yTr8PAGowGBwVDAbvmT9/Pvbu3dddijV9WdUUUE0BUQm6kwaCYe+ljK/w8ruUdsYCBLlMEUQhoJoCygWM+LIvHTx4sGfevIbqYMD3BSFkJVUUrG5oaFABoPXwhd1UVUBVahtpKtoOnEV/gSHHgBwDso5c6XO6yNF24CNQTbV9qBRUUenuwz1/BoCZM2dplOJeSggWL1myFEII9IeXziIKBVUUW1QKo2Ci41Anei9kkWcY6Ex5R8qfc0wi0ZPF6QNnYeQNB2j7IQpFOtg0WwiBxoWNIBKLVQI6Z8rUqTh69FiWaFNmEIWgLFShoM5TZbIzgVxvFp6ID5rfA6JQgBAIxsGLJkrpAsycAcH4gN1gX0QPTW9vP5Grr58cJJTOpbqmjgWAnp6ei4QSEEJAKAGh1BbHCS2DLAFmMAgmICwObjDnyYMMAtJL9oN89vRc7KWUQtOUsSqhSggA8sWivSEh9qBxTiCEAGRwQARUVaB67Hf5pZAQlA0Ayrq2LTCogVyhlLURNEw55yYABP2+4ED3vHSClBKQ9jiFdHqvEBCMQzAOKYSt6/RqSGnbDPJRbgT93hAAcM4NyhjrBYDKylhswEEZJgYJFxDchnGTwSqasIomuMnsIDiH5GKIzUAQTsCVlZUxB9xLIUVbKpVEff3kiLTMfimEA7HP5bZgHMJ07mnJAiuaYEXT3jcZDMLkTgBD7exgBKRp9NfVTQwnk0kIKduoJGRH8/ZmhMNh4skc3DnEkDlAi4GbtjDDguVAmZM1M6yB68JyKsCGBqD373s7GAySnTt3gBDyFhWCvPHee/8HAJhTU5g0BMg4uMXBTT4AZSUTrGjBKpiwCnablQbDbZuyfTmAuRPMegA4euQopCRbaCaTOd2XSLzX3d2Nu+64bR7PnP3LJSCDMBm4YW9FWcmyQYMytsW+Zpfdsm1MdimAdMc7K29bMedCdzeSyeS76XT6jLNI4PGf/+w5aLqOu25IjOOWKcSg0jJjcLZ2ecsZD5TdybqsOxC0ZYpbJ58frek6nn/+eVBJHgecjXkqk2nu7Ozcdfz4cdx556rJN5C3m8v3jBt2xpdnazjysawNy5lUbKkrbmtZsWL5pGNHj6Or62+7k5lMy5CFNRQKTfN6tAMvvvhSRe3EOqx/4oXXLvia7qO6CsVZrey5154KB5YpKSG5tHs+5/ZsZnEIk6Ei1fLH73373i/09fXi0fWPpgyTLchkMqeGgAEgHA5/vjJWsf2PmzYr1dXV+K8fP7vjLxduWkY8ilpetQZPg+UJxh63lzqlNDi7gTa3fuPraz6bzxXw79/5FutP51am0+kdZdaQ/2kzDKNDUci51179w8pbP3er8sAD6+pnVCWy+/fs21LAqBnlMT50qJXFLq2a2L/5gaVy7N133j69u7sb67/7iFHIFf4tlU6/Ppg1kLGU8hYAywBMeOWV33gfXb9+1Q+ffDL+4Ne/AcYY/tS8PbV5++4Dhy+MopY2ZrLiidQDgDBSp5TS+Y7psS65ZOHsW26++eYosxje2PwGNm586eKzz/x027+sXWsBOAfgbULIQQAgUspaAA8BGAfnsamrq4u0tZ0Q333kkdGmZS3f8JNnlBXLV0AOilRKCS7sWYlxjlKxgHw+j5Y3W/C/Tz/NQ6Hgjp9seKZ31py5ajwe4wAtz9zdAH5OpJTPAqgEgL5USkpu4eLFHloqFXniYh9t3bunauuWrStisSi5//4vYnHTEkyZOhWqokBICcuy0N7ehr2trXjt1VeRzqTl3ffc81bjgsZELF4pQ6EAqa4eI6UEicfj5dhTKoCikynx6Bop5C14dJ2XcjmouipvvGFGoSJaWfr738/7tmzdjl/88pfIZjKwnH2SpmkIhSMYW1ODhvmNGFcztjhudFXR69Wgck58Hg+XEorH5ylDJYA8kVKOckpdB0ADIBOJhOzv70OhUFILuTzPZLNcSE6SfSlvJp0O5A1DN0qGDxLS4/OUAh6PGQqHC5XxeJEQgkgoRH1+L/wBP6LRuIjH4+Uf8gSAUwB+MbhzzQSwCMA0p/QUQADgNJ/PJ/v7+wnnnFiWkJZhKCYzKADoqiZUXeW67iGcSxKPx2QoFAo7AybnuE8COAZgHyHkxGXjeFAQEQCzANQCqAIQBeAH4AXgcex052w45TMcyQHIAOgBcBbAUUJI5uOM/wcaHmf3g9UM7QAAAABJRU5ErkJggg==",
      "public": true
    },
    {
      "link": "/api/images/system/map_marker_image_1_(1).png",
      "title": "Map marker image 1",
      "type": "IMAGE",
      "subType": "IMAGE",
      "fileName": "map_marker_image_1.png",
      "publicResourceKey": "DdauPaPx8v1GQG59ZHR6LSEBlqMOCQgu",
      "mediaType": "image/png",
      "data": "iVBORw0KGgoAAAANSUhEUgAAAB4AAAB/CAYAAAD4mHJdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAACWAAAAlgB7MGOJQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAA3vSURBVGiB7Vt7cFzVef+dc+/d90OrJyO/JSO/4ncxxfULMCYIAyEW08amJJgmM4GmnZjJdNq4gcSGzLQxk3bsaWcaaIHyR8CJrWAbpjgG/AhINsbYxkaSDY6xJFvSrrS7Wu3uvfecr3+cu1pbXhkJs/4nujNndufec77f+d7fd+4uw8gvIxwOfocBaz0e91yXyx0BgKyZiWUz5kcEvBKPJ18EYI+C5rWvkpKSyZGS8LGHGtbQR8ePUUdnB50/f57OfnqWWlpbaN++39O99fdQpCR0NBKJTBwJTfZFE4LBYLmh8+YXXvifKctWrEBPTze9+cbu8/3JVMoWNjwer3/ZsuUTvV4P239gP36yceNZW9CtyWQyei262hcB+7zurU/99Ge3r1nTgJdfevFsqr8/Wlc3rWbGzFkV8+fPr1iwYEEJgLadO3cmbr/jjohh6KXHPjxamsmar39pjoPBYHl5aUnnqZY2/b1Dh9LdPd39kUgk6PP5PD6fH36/Dz6fDx6PF+fOfdZ9+pPTgbq6Ou+aBx+0k/0DVYlEIjYcbX4tYM5pxeK/WKIDwM7Gxt0TJox/dtLESXC53JuHzvV4PBVHDjfvAYDZs+fonMsV16R9rYeM8XG1tbUAgMrKsrDP659DRJ5gMNhbaH5NTU0IAMaPHw9IPv5LAxORy+31AgBcLsO41lwAcLu9BgAYLheIkftLAxfzGgMeAx4DHgMeAx4DHgMeAx4DHgMeAx4DHgMeAx4D/lME1ke7gDF8ltbOHe3W923oEwYi1jxftWfZWgAziwacZkd2pfyN96XN5IIu7dMtIKA9/TI+zqCnFps2Alg5UlojFnVqIHZUlO2sl4RyC4CU+SEEylux8Z/iyc7mrxw4U7UnYwvGpXMYKIgNGdwXC/76C48oRw3sDWfnCgIkARJXcpwbvpA1e6T0Rq5jDr8EAHKA6OpjUOJwfeXAJAEhAXAGgEPKq+dIMVJqowDO4RAAC0rHV21u5LijAJaABAOIAY5Oh15iFMgj1zEpcUuuXjpIWeCouxjAtnIZcGKA5AVFbRfazPUC50QrKe8+Qy8qiqjBYIODA5DgBd1pBO9WRg9sy7yOhXBca+icYrgTOUGOiKnIVdCdisAxJGBTPsYW0nHRrJqgfNmGVtiqaeR1xchF7Vgz40q/BUNmISlcL7CUgJAMnOUiVwEdF0PURIAAVHaC8ucbAiwcQAb1KQpwXMjFrhtYMcOVO8lhOB457ujcKZd9hBguSYwcelTupKyaQWKYJFEU4xJw/Dhfcw29ilSBcNjEoTucFnSnkeOOvvTJpcVC1cYoGB5NAGEQTukjMAzHoghJghyWCRjenYoTuZjKx8xJiwU4LrSZ6waWpIoBjTuRqxDHRUkSUMWAJAZp6QU5FqOw65HHapG3bGVcBTZXDI5VnFaFgBL1yC34uoBJqEJeIwD2MMY1ilZidAFEMlDOqm9UdpJ0ZawumI+LU9ArwhyqWxyNz14XsBAMUnLVH0ttGB0XococdCGWE3XhOV85MF1WV2OY3omK0S2SkxgYAZYYJoAUpcqEEjG/Ru80isA1ysMXYNCnCum4aKUPgTu90w3sFinXL6nO/MadCAhiKloxBjFMeSuK0S1Kylv1cE1bUVoYyHwhoI6bCswpjjuxK5u2G2lcti2jzNCRTluioHEVw52EBA5/2LKsLBL+h2gs/o+Fjpa+MqtmjCbkqQJSYFF3T3zRsPMvA75i7UiBA4FApa6z5+fNnbd6/frHADghk7QdlhAHdMY0KXkZAHAuozaRMDRtKYMdAYDVq1fjcHPTD860nZlsS3qsv7+/+6pNDr0RDAanGTrf85Onnq75/uNPIJ1O4+dbnj34Ot6B4eFLqksqUeEvgcflAREhZabR09+Li/EorLQ4eFv317D2oW8t0XUdu3a9jud/9auztqD6ZDLZOixwOByeouv8D1u3brtpxYrb0XS4Kfbj3//8VHC8d0nDLXfj67OWIeQJgDGADfoOAxHQl05i14l92PHBXiTPp/c/OrFh9vwF8yMnjp/A5s2bOqXEbX19fX+8CriqqspvmunDTz/10xkr71qFnY07Tr1i7aqsLg2Vb6h/GOPCpdAYgTPlNLmF5AzpvBRp74viX3a/hO6+ge47+hZG61fVTz9y+DCee27Lx15fYFFHR8cAcNkPuw2DPXfP1+vvvf+BB7Br967WX9Mbk70eCn33zlWoCrsgKAFBCdgy/2nLBCyZgCUSMGUSpkzC0G1MrKzE0XMt/la9I0QnM+cWL15cmkwmK1tOnwpksuabg8YVifjnhEOlj69dtw6nT51Kv2q96fYG4fG7gbJwFhn7cxicIJgEZwAfEiokGASpWG1KhvIwg1/91ti1N9DEJ7ZOzKxdt87T1Nz8A67jv2Kx/o85AJDk//zXjzzCAeA/D7zU6PZjkkuXcBuEjN2OrGiHabfDFB2w7HZYoh3mVaMDWWdu1m6Hy5Bw6RIuP6b87+HXdgDAww8/zIXgGwFADwQCFYFA4BuLFi3CoUN/6LRmyL/y6gSXTtC4QDTVgQo/B5iEJFJ6Rt64lI6Vfi3JYBFHd1JA5wIunUNIQvpr/C+bm5u65s9fWBnwe9dISWVc0/DNhQsX6gDwTuuhd3WNYOSGTjjSehGp7EVYsguWuJQfssu51wVTXIIpLsGWlzBgXsSRM5dg6Hk6uk787Zb39gHA7NlzDM7xoM4Yli5fvgJSSiRmmbP9HNA0Qm4D6axEc6uJ6eOzuCloQuOOjlneqiUx2BK4lDBwut2DTFaHoXFYGilaHEjMMOdKKXHb4tvw/nvvL9UZ+Lyb6+pw/PjxpOZhsziX0DigcYLG1QaEBD69ZKA7wRHx2/C7BDSNwEi9AEmZGmJJA/1Z9SJM12hwvcYBzgmaj89obW3pr62dGmCcz+cuQ68GgEtdl7oYU40CZwSeW+As1rmy5KzNkbY1WILDlOp71ubgnKA7czVO4NyhwQhcFS7o6urq5pzDMLRqnXEtCACpdCrFHOHlAsTgYEq0nCnj0jnBY6i8KCTLBxbmzB2yPkczmU4lAYAxHtKFECYAPeDzBQZD4GU+motMueXklECWc7QkSaVDGoTAVetz8AGfLwQAQoisbtt2N4BJZaVlpZQjkntdS8w5UFOFni0YLMGhWfny1rbVPVuoOVKyK9ZeTrMsUl7qAHdzkPyktzeG2tqbw8KihCQlPjVUl2hLBkswmDZD1mJIWxwDWTXSFkfWUs8sZ64QzlqHjiRA2tQ7ZcqUYCwWgyT6hBNjb+3ZvQehUIi52tje3M6FyHHIYNkOqM2RsTjS2cuAs+pe1uYKPLcBkduA+m60sH1+v5/t3fsWGGP/x6VkjR98cAQAMNc7bXJepAyWzWHaimjW4siYDGmTY8DkGMhqapgcaVM9yw5ugMOyeX4DkmGub1otABz/6DiI2O94IpE4E+3p+aCzsxP333PfAvOi2G8JBtMRbU68GZMj44Ao0BzXmgOsRk7spq1oWILB6rQP3nt3/byLnZ2IxWKH4/H4pxoAeFzuC21tretW3rUKnk5mtWiflzAGxhgDQ66IYyrnOnqzBFfDZjAdLk1HMnkpMWRNLldmFomamtrIL/71F+iPJ/8mnc2e4QDQm0jsOXfu3L6TJ0/ivtX3T607M26P6SzMWI5eB7ktPHLPc/MV5xwTjpe9sfLOu2pOHD+JCxc+fyeWSLyZdzCoWsvjNpqef/6F8KTJU/DDLT/a3jM90eDWCS5dqmDvxF7NCRSAOikQhCuMUXHMEDjm3v7jb/+oIRrtxpMbnuzNmvatiUSi7QpgAAiFQneXlZbs3rGjUauorMSmLc+8dShy7HbDELqeA3bC4GCScHxWSMDOgVuaPb2t+t3vPfK9O1P9A/j7v3vC7ov318fj8bdyWFf8YCSbzZ7VNHb+tVdfrV911ypt/bcfq52J2uTBg+//LhWwZ0nJYTtWf6WrcccDGFgLdn5nwkPVD9Q/MLOzsxNPbvhhNpUc+G5vPL7jcqxBjonozwEsBzD5lVde9jy5YcPqTZufKX90/WOwbRv7330nsffDt08dSB41EkZyHPfwmwBAZuTFsBm48GeuWfai2oUzp02fFjKzJhp3NuLFF/+765e//Pfd31q71gLwGYC3GWNNAMCIaBKAJwBUO3uQnZ2d/MyZNv1vn/j+LUuXLq/Z/MyzCIfDTmxW8Y+IVFyWqjKRQkDYNqKxGDb97GkcOXLk7LZt/9F8c12dqKqqYM4LYALQCWAbI6J/A1AGgKK9vSBhoa8vEe+N9TwejcZYU1MTfrN9O6puqkJDw0NYtnwFpk6dCsZUMrFtG22trTiw/11s3/4aotEo1jQ04NZFt6KsrJTCoZKtJaWRiGG4KBKJ5BJWnw4gDedAx+0yMJCywLnQGWOSMabV1NbikUfX40J7B367sxFbt25DMhGHZZkgAC7DhWAojOpx4zF3wS0YP64aVZUVYCoQSN2la4bhIsNlcOS73H5GRBUAHgcwBYABAD09PZROp1gq2V8WTybq4vH4xEQ8oSWSSfSnUkinM7As9RdUw9Dh9XoR8PsQCgYRCodESTj0x1Aw2OrxBXsDgYBdXl6eM2IB4CyAbZcb12wASwBMB1Dq7C4ACJZIJHstM5PWdC2TTmcom80wEtySAFwupum6wbxeDxeCuT0et8/v94UBTTrSJABRAKcAHGCMnbrKjy/bRBjAHAATAFQ5NuAF4IFqAtyOKzKo83MLgAkgA2AAQB+ADgCfAzjBGIsPxfh/6wbDK7xbMFYAAAAASUVORK5CYII=",
      "public": true
    },
    {
      "link": "/api/images/system/map_marker_image_2_(1).png",
      "title": "Map marker image 2",
      "type": "IMAGE",
      "subType": "IMAGE",
      "fileName": "map_marker_image_2.png",
      "publicResourceKey": "CMevYxLAwQ2s2lohqXepeUUzUky8Sk73",
      "mediaType": "image/png",
      "data": "iVBORw0KGgoAAAANSUhEUgAAAB4AAAB/CAYAAAD4mHJdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAACWAAAAlgB7MGOJQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAyUSURBVGiB7Zp7kFRVesB/5/S9PdMz/ZoHMwo4MICDuoGVIYICIuzGcn0vC+oWGuNjs8mua9ySP4wpgyaiVVupbHYTsLJmNT7WNXExwqqzrq8g4oNxdXUgyEMQARmZd3fPTE/3vfd8+ePenhlgBsFlrFSqb9Wpvn3vd77f+b7zne87ffsqjv+wE4nYDQqWl5aWfDUcLqkAyOUHunID+Q8EnkilMo8C7gnoPPaRTCYnVyQT71+1bKl80PK+HGw9KPv27ZPde3bLjp075NVXX5FLL7lYKpLx9yoqKuqOR6f6PIFYLFZtW7r54YcfqV+4aBEdHe3ywm+e39eb6etzPZfS0kj5woUX1EUipWrj6xtZedddu11P5mYymc5j6Q19HrgsUrL67r/7+8VLly7j8cce3d3X29vZ0DB9yplnfWXcrFmzxjU2NiaBXevWrUsv/trXKmzbqnz/9+9VDuTyz35hi2OxWHV1ZbJ1245d1ltvvpFtb293Kyoq7LKystKysnLKy8soKyujtDTCxx/vSW3fsT3c0NAQWbpkiZvp7a9Np9Ndo+nWxwJrLYvmzV9gAaxbt/75urrxd592Wp0Oh0tWHSkbiUQSv3unuQlgxoyZltZm0TF1H+umUnrC1KlTAaipqUpESmMzFIRjsVj3SPJTpkyJA0ycOBGMnviFwSISLolEAAiHbftYsgAlJREbwA6HESUlXxg8lkcRXAQXwUVwEVwEF8FFcBH8/xhsnZC0ksw49eQPI5mmNtP54ccAIvqgqbz4aYn8zYoTUXXcFnueyZ8eXtleZt75iQnpU0VUvYiqB5mvu5p+XH9w8RtgnJMOLut/7rd4+fpRBcS52hz65csnHdxQ8clZnyuT3NV40sHRUnfq58mUWFJ70sEn+yiCi+AiuAgugovgIrgILoKL4CK4CC6Ci+D/Q+Djf/higk8Jzs0IMjIGYDGAp0AUeBbiHf3Xs/HGAHyYlYaRX0EYC4txNeIFugvWHyXzua8cnDjYGMBoQIFhRFfLmLjaCxqAw8iuHing/nCwGlLuMrKrveNfnccPFnyLtQ8c0a1jElye8sGFAYwUSCN54Q8GB4ljKKpHkBmLOZbB4FLgjhLVYxNcDFnkMXJUj03m0kOKR0sgYzLHRvlwpcDYI7oaGYvl5HB4ZRrJ1cf9fP5E/5NwQUKM7uoTOI4/ql38kmgUOCMnEHMCL819sag2jJJAxgIs+HNY6PGlpUxXDQWXw5dXjxH8SFZBPf7SyqKrMQLKG7b/OkpmTBJI0BSjbwTGYo6Ni5+ZjMJDj1wkxmQ5iV+VsBh9BzImKbNQFhWjp8wx21c7dKIV9A94IxaJsdplZt9574JQVcUdpr3rzlEHdzLASslpg19EofLMMa3dc0Z9c9YMXT+s7/GCo9FojWWph87+6tmX3XTTzT7XA/F4xutXr4fyOuQZVQUQ0tLphY1nlcn5YqgAuOyyy3inefOtH+36aLJr5Obe3t72o4w68kIsFptuW7pp5d33TPne928hm83yLz+6b9PVb/4niRK9QNfUoquqUaUREEEG+jGd7Zi2Dnpy3qYHGr7OFdcsX2BZFs899ywP/fznu11PLslkMjtHBScSiXrL0m+uXr3mlEWLFrN58+auxD+u2HZWhb0gcvkyShZ/Ax2N+70KPcVvJpMm999NZJ99mi1dzsb3rviLGbNmz6rY0rKFVavubTWG83p6ej4psAbfr66trS03xtlw98p76s+bN5+nnvzFtouevK/s1AnJM+I/vB37j6aDziJeCtxhzUkhTgoYwJpchz3zbJI7fj/pzA829f6iR/bPPW9e9aS6utjbb715YWVl1SOZTMY5DGzb6scXf+OSS6+48kqanntu55+99shkOyLx8uuvIjSuDEzq6Ob5TdzgPJ9GhT2sCbV4W1vK57R+FP9lOrT33PnzKjOZTM2OD7dFB3L5FwaDq6KifGYiXvn95ddey4fbtmWv2fhIiVUqpbpMEao2SH4fiKCMgAbRggSuVkKwEQz22q4iVKtQEYUtJvzdlvX6+bq67PJrr41sbm6+VVv8W1dX7/9oADH6b//0+us1QO/jD6xPhGWSCgsqLJj8PsTdjzj7Ma7fxDkAzn5wjry+H3H2YfL7UGGDCguJEqnPPf3YOoDrrrtOe56+C8CKRqPjotHoN+fMmcObb7zRelsk9W1lC4QFCRlM9yfoKnsoEgOLVWCxDLfYBRwwnXmwDIQVyoMbo6lrfrq5+dCsxsbaaHlkqTFSpUMhvjV79mwLwHvjldewBGxQlqBswXn3Y6T/EDhtiNOGuG2I2444QXPb/WtOGzhtmL7PcN7di7IFFegiJDq3+ZVXAWbMmGlrzRJLKc6/4IJFGGO4MdQ+gxAQEn/2LcH0u+Sa27HO0IRq/V+MSqnBOUZARMAD75DB2w4mq8AKWkggpPiOtJ3dYgznzTuPt996+3xLoc8+vaGBlpaWzFybrygtqCPgeODtcTFtBl1hUBHfGgl+wNGv8FIayWjE6KCfD1UhBVqotPWZO3Zs7506dVpUaT1Lh21rPED7oUNtKH8OUYLSoHTwWRiEAsmBDIA4gCPIAJh8YL3lyw7vi5JAJ7QdamvXWmPbofGW0qEYQL4/0zeYjdTRTQ0Oxp9/Svx9jvKAkBocsCh1dP9AZ76vNwOglI5bnuflAaukPBo9bM8UpMIjvxeiWAUbATHK3/yNJM/h30vKozEAz/Ny2nXddoCKyqrKwc5GDYFMUJmM8peLqyCvkH6FZP1zXP+eGBXIFvQcrquyqroyALdrxGzv7u5i6rTTE3lX0gUL/DIYPPfwFDh+k5xCBhSS1Ui/9s9zQ/cLz0rEGxqEGMWAK92T6yfHu7q6MCLbtSj1UtPzTcTjcfW0E3t5EBSkv0FgPgAMQgtWa/9azpcZHICrhvR48B+52CvRaFS9/PJLKKVe1Mao9e+++zsAtk9rnIwbLBFHIQ5IACWvkJxGBjSSDeDZ4HxAIznty+SV38chGIA/PXumzZoK0PJBCyLq1zqdTn/U2dHxbmtrKxddfmXj1r7QRr9jMH/5Ye4d8OdV+odZ3F+AqyG3F/oFelr62PQnl14667PWVrq6ut5JpVJ7giLBygfWrMYOh3ll/pLx4iojR7p3QMGgpQX4kPUE8OFuF0chrjIvzL78VDsc5sEHH0SLWkmQLuhOp5v27t376tatW7nk8iun/UN8VhM5BblASS5w53BowdXD4L7Lg8EG7Z6SM36z+MILp25p2cqBA/s3dKXTLxRSBeDvtUpL7M0PPfRwYtLken791z9Y++fevmWE/WJBIelbgJbDtz4mePblBksrcPU/ubVrF65Yuayzs50Vt6/ozuXduel0etdhYIB4PH5RVWXy+WeeWR8aV1PDz+6/56W//PDFxbpELGULgwVEcwSYoWXkKExOuatqGl9b8p3vfb2vt5/b/uoWtyfVe0kqlXqpwDpql1lVlbwhUhr52VNPrQ3PPuccNm16PbXrR3f+9pvm0NV+pWEwhQKIqKHnm57iV9nydc6Smxc1zm5MHvj0AHfecUeuv7f/u509PY8N5wyCReRcYCEw6YknHi9bcfvtl9276r7qG2+6Gdd12bhhQ/rghhe3TdmywT4l2zkhEeIUgJTLZ62RygPbT5/rlv/xvLOmnzE9ns/lWb9uPY8++u9tP/3JPzd9e/nyLLAXeE0ptRlAicgk4BZgfDAGc/DgQb1790fWrT+45Zz58xdMue+++0kkk/5N8RO2iPiZ0BiMCMbz8FyXzq4u7l91L5ub3969Zs2/Np/eMM2rrT21YKQBPgPWKBFZAyQA093drTzPobu7uyPV3XNbR2enam5uZu3atdTW1LDsqqtYeMEipk2b5m8GANd12bVzJ69vfI2n1/6Kjo5OvrVsKefOPZeqqkpJJCtXJ5OJinBpRJLxeOF3bI8FZIAYoEN2SHmeJ6GQ2CiMUipUP2UK199wI59+2sp/rVvP6tVryKRTOE4eAcJ2mFg8wfgJE5nZeA4TJ4yntmYcSimUUsaydMi2wxIKKTXM6n4lIuMCV08m2O52dHSQzfbpvkxvZSqTbkinUnWpVDqUzvTS29dHNpvFcfy6aNsWkUgp0fJyYrEYiUTcSybin8RjiZ2lZeXd0WjUra6uDg2L/z3A6uHBNQNYAEwHqvAXTTl4Kp3O9HhOvk+FGMhmHXHdHGLEE8CytNY6rCKRsPY8VRoOh8tisfIkhFxgIAB2AtuA15VS20ZcTsEgEsBM4DTgFKASiAClQAnBig7EC8/8BoAc0AekgE+B/cAWpVTqSMb/AlY1WXIncMcxAAAAAElFTkSuQmCC",
      "public": true
    },
    {
      "link": "/api/images/system/map_marker_image_3.png",
      "title": "Map marker image 3",
      "type": "IMAGE",
      "subType": "IMAGE",
      "fileName": "map_marker_image_3.png",
      "publicResourceKey": "qJrPmXUSGAdtDpw3Cp6z4VaNiNSnUy6l",
      "mediaType": "image/png",
      "data": "iVBORw0KGgoAAAANSUhEUgAAAB4AAAB/CAYAAAD4mHJdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAACWAAAAlgB7MGOJQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAxNSURBVGiB7Zp7kFTllcB/5/a93dMz3T0PemYIDgoCPhZ5iaD4wNkFjQjRRMlLTNbSlKlyzZpobSVbFRPUbNVWSRCWuKvlxqybtbIrukp4SATZCAgospEBgeElj4EZ5t3d0+++37d/9O2ZnqEHQZzZSlXfqlMz/c253+875zvfOefeHuH8L6u83P+AwH0lJZ4pbrenEiCVSnYmEsndGl4NhSKvAJkLmPPcV0VFxZjKivKPv77wXr274WN9uvm0PnHihD5y9IhuPNioN216Vy+Yf6eurAj8b2Vl5aXnM6d8loLf7w9apvHhyy//29jZ9fW0t7fpdWtWN7Wdao4qpaiqDpbdXF9fV1paKpu3bGbxk08eSWXU9ZFIpOPirC33v7xs+TIdiUT0Pz239NjeaTOTHXXjdb4cuP6W5DOLFx/7aNdH+oknfqQryv0vXZTFfr8/GKyqaN7XeMhc//ba6NSfPFXqS6fESJ29jdGAX69+9KHY9OnTyxbec08mHInWhsPhzsHmNs4FNgxdf+NNN5sAh3/7n40dCxeKedUsOr6x8CzdsnBEQu9sPABwzTWTTMNQ9eec+1x/FDEuGTduHABXtreOKutJYyiFqq4tqD+5O3wJQF1dHSij7nODtdZuj9cLgMfGOpcuQInSFoDldqNFez43eCivIrgILoKL4CK4CC6Ci+AiuAgugovgIrgILoKL4CK4CC6Ci+A/B7B5vor6Mz4PNnbRYAAtoCQLUMMFVobuBWOALWdjVIGxiwbbZC3WkrXWLqAzJBZrR5T0LWTgdSHfdF1YcIlG57t8oM5nfov1OcCKPmDW1Rfi2IsA5yI5F9WFXF0o0i8arARwggsBu4BbhwaM6g0ujXY+9b+GLqrzLR5E5wsH2ziB5QRXoW8lCy3mosH553iwlDlEe9znai2DpMyhAJ+PxUNTJMhZm51+WM9xvsWFXD2kx0nl9rjQ4oYC3C+4BoEMnasl39Vn6wxRdcqbXApXpwupWBcEVgLKGLw6DU1w5bkaCjcChcYuHozuLYtqEFfroXC1TZ67GcbjlEuZWjSIHr6ozjZ7/y/VSWOLdgJIF9zjQl3JFwDOXn1lsYDOULm6X+YaROcLB6s8+LC2tzqvoc+Wx0L2nT/6wlIm5y6LQ9bs5TLXsO5x7jG192lxuJq9bCOg0aIRGcYEkt9lCsPp6lxlMsBlFE4ghcYuGoxznHKFYNjKYq7Zy5XFYW32lMtCBGzbLlwWLwB83m/2NNC44R0iFaP503+8jO1UqHz5wiwW0aNzvysgdPJTQr/7dFD9fHD+vecN9vl8NaYpv546ZeqCBx98CMhGbPXEqZRfcTWmyySTjuO2TMora/B4Sji+832OnWoGYMGCBez88IMfHD50eExG6Yd6enraBjJcAwf8fv+Vbsv1Pz9f/NT1y1esQCnNPz6zeGuy6WBN+MRRrwp1YMR6MOIJMqEuOj49xNFd2zh5aD9SVpr44PCJXVOmXXvpHfPm4fP7rtz98Z/usSz3+lQq1e/fnvuFSHl5+VjTNLb96lfPj6yv/0t2bN/eufJnj+37Uql1c/1Xv8WM279CaZn/rJcBGoj1hNm+7k22rF5JcyK1edp3Hps0bfq0yj0Ne/jFL55pVopZ3d3dx88C19bWlqVS8Z2Lf/7U1XNvu51Vb72x7/irz9fUBEcEv/03PyFYPRJDgZHt9XpvzG8QlAFnWppY+S9LaOnsaPPOWdhxx7z5V320cydLl/7yE2+pb+bp06dj/VxtWbJ03h13zr/r7rtZu2bNwVP/9cKYMiHwtW8+QNAbwOiOIN09SCiChCKQL+EIKhxBhcN4EGpGjuJww66yxNH9gePac+zGm26sikQiNY379/kSydT63uCqrCybXB6oeuS+RYvYv29f/OTKFz1+dIlXXFQrCznRjNhkRfdJzmIMEAExsqbUmh68holWGXf43deMg6NHJ+5btKjkgw8//IFh8lJnZ88nBoBWxpPf+e53DYC1Ly5bVSb6Mo8WSrQgx5uRY6cHSDMcz0q/vx/PSTNeJXi04EOPfe93L70JcP/99xu2bfwUwPT5fNU+n++rM2fO5P3332+uS3V9y9KCG8FSmtjRo3iN0uz+qqylemDnLhpDQDsFJGrHMG2F2xAyGi5Nhr65Y8f21unTZ9T4yrz3KqVHGC4X91x33XUmwN7N775nApbuk90nD5BpbUbaWqG9Dd3eju5o6y/t7dDehrS1kmltYffJ/ViA25nDBcbeLZs2AUyaNNkyDL5minDL7Nm3opSiNtQ0yUQwESydlXg6xc70Sf5CewliYSD9TqHu/anpIMUnJIiLjSVCGjAFTA21odNTlFLMunEWO7bvuMUUjKkTrriCvXv3RDyiJxpacGVXSc56W2uO6DhtKkmFFsocHchmtKhoukURNrJPG5YDdAEuDYaAV/TVjY0HesaNG+8Tw5hmuC1zFEBLS0urkQ3QPtFgILgQTC0IkAZSgEJQCClnTBwdF4KBOPf2iQBnzrS2GYaBZblGmWK4/ADxWCzqoS85iDOZDFiMS2ddV5Kz2EkGhgwECYLOzqOzxy0W7YkAiBgBw7btFIC3tMw/2JsrnS9OI5B2pPdt0AC9gdVZZxkBANu2k0Ymk2kDCI6oqsw1c/nNu8rVW8l+2ZFCkxRNzMhKUjQpNBlnv23nXfbAeTRQHayudMBtBlod6OrqZNz4CeVprcKqd4KsZBxgGk1KNEmBmGiijsScsZRo0s4CMnn3284CMqJCY8aOCXR2dqK0PmBokQ3r1q7D7/dLq7tyY8axMCOatDNZFqhJiCbuWNsLNrJjCUcnt4C0ZOew0WTQnDYr3/X5fLJx4wZE5B1DKVm1a9dHAIyYesPYjEBa+vYwJZAUSAgkHAtjookaWcl9Togm4eim8u5PS9YDNVNmXg7QsLsBreX3RjgcPtzW1rarubmZ+QvumtahXJvzrUzmWRvrZ61yxNnvPKuTA6xvt13bvjxv/tSW5mY6Ozt3hkKhoy4Ar6ek6dChg4vm3nY7oZJAJnG4oUIQESdD5Ud0v30XSBlZC1OGdjyTA/darwK3LcxcPm585ZJnl9ATinwvnkweNgC6wuF1x44d27R3714WfOWucZGrb3g7kee+eJ6LewPLcXU0bzwuuf2G3P3NoyevnzP3tsv3NOylqenkHzvD4fWQ197aikeW/nJJd1dnJ4//9On57V+a8Hoib7K4kQeUAWL0D7RcsJ2oqHv9wUcfu7Orq5MVK5Z3KS0P53j96lsgEPjyiKqKtW/891uu2tpalvzDMxsTW96s9yhMC8HUOCkxm07JO/fZk5A9dkmDTOSqWe/99fcfmRPtifHY3z6a6Q5F7gyFQhsKggFGjKh4wFviffG11153T59xHVu3bg3968/+7g9V3ae+0Zv0kX49l3ISjA2ccpe/NXvR9+uvnX5tRdOpJv7+xz9OxnpiD3d0d/97PqcXrLWeBcwGLnv11d96n3j88QVPPf108KHvPUwmk+HttWu71q96Y0dozzajJBUfXyqMA4gpfShmeY54JkzX19/6VzfMmDmjMpPOsOqtVbzyym9alz23fM23Fy1KACeAP4rIBwCitb4MeAQY5SxEt7a2qIaGBn70wx+OTKXTc5Y+t8w1d85cdN5KtdbYSqGVImPbJOIxotEo6/+wniXPPmsH/L4Ny5etaJk46Rqprq7JPTgooBn4Z9FaPw9UAHR1dSnbTsuZMy1GMpnItLZ2GFu3bq5d/fvVc0ZUjZB7F36d2fW3MmHCFZguF0pr0uk0Bxsb2bL5PV5fuZLuUEjfdffdG2+66ebW6mCVLvP5qa4OAoYEg8Gcg7tNIAIEADHdJnbcxmNZ6UQ05nK7TT1x4sRYRVV1/FTTqdLVa9bywgsvEImESKfSAFiWhT9QzqhL6rh25g3UjbokPnJkTaKkxFRaa8NtGbaIy+Up8eS2VgEx0VpXO66+HKfdbW9vV93d7RKNJl3xeNQOd4d1Mp0i3B3yRCKRsmgiYSVTaa9orS23lfR5vany8vKYLxCIeyxLKqoqtddbKh6PSVVVtQ4Gg5IHPQI8nx9ck4CbgSuBarJnvARsiUai4XBPmGQyqbWGRCxh2VrZAKYYLtNjZUyXSxsuU6oqyg1fwO91nhUSzvQdwB5gm4h8UvA4OYsoByYDY4EaoBLwAN7sYiDvZ4LsqUo60uNIK3AY2CMioYGM/wPREY0iGUY58wAAAABJRU5ErkJggg==",
      "public": true
    },
    {
      "link": "/api/images/system/water_metering_user_dashboard_dashboard_widget_new_openstreetmap_marker_image.svg",
      "title": "\"Water Metering User Dashboard\" dashboard widget \"New OpenStreetMap\" marker image",
      "type": "IMAGE",
      "subType": "IMAGE",
      "fileName": "water_metering_user_dashboard_dashboard_widget_new_openstreetmap_marker_image.svg",
      "publicResourceKey": "pShWD0JHCROYMvKBVK4j3OoBwzUNOD43",
      "mediaType": "image/svg+xml",
      "data": "PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzciIHZpZXdCb3g9IjAgMCAzMCAzNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTUgMzUuNTg4MkMxNSAzNS41ODgyIDI5IDI2LjAyNjEgMjkgMTVDMjkgNy4yNjgwMSAyMi43MzIgMSAxNSAxQzcuMjY4MDEgMSAxIDcuMjY4MDEgMSAxNUMxIDI2LjAyNjEgMTUgMzUuNTg4MiAxNSAzNS41ODgyWk0xNC44MzU0IDI0LjcxNzZDMjAuMTExMyAyNC43MTc2IDI0LjM4ODMgMjAuNDQwNiAyNC4zODgzIDE1LjE2NDdDMjQuMzg4MyA5Ljg4ODc2IDIwLjExMTMgNS42MTE3NiAxNC44MzU0IDUuNjExNzZDOS41NTk0MSA1LjYxMTc2IDUuMjgyNDEgOS44ODg3NiA1LjI4MjQxIDE1LjE2NDdDNS4yODI0MSAyMC40NDA2IDkuNTU5NDEgMjQuNzE3NiAxNC44MzU0IDI0LjcxNzZaIiBmaWxsPSJ3aGl0ZSIvPgogICAgPHBhdGggZD0iTTE1IDM1LjU4ODJMMTQuNzE4IDM2LjAwMTFMMTUgMzYuMTkzN0wxNS4yODIgMzYuMDAxMUwxNSAzNS41ODgyWk0yOC41IDE1QzI4LjUgMjAuMzE1MSAyNS4xMTM4IDI1LjM0MTIgMjEuNjMzNiAyOS4wODg3QzE5LjkwMzQgMzAuOTUxNyAxOC4xNzE2IDMyLjQ3NTggMTYuODcxOCAzMy41MzQxQzE2LjIyMjMgMzQuMDYzIDE1LjY4MTYgMzQuNDc0OCAxNS4zMDQzIDM0Ljc1MzhDMTUuMTE1NyAzNC44OTMyIDE0Ljk2OCAzNC45OTk0IDE0Ljg2OCAzNS4wNzAzQzE0LjgxOCAzNS4xMDU4IDE0Ljc3OTkgMzUuMTMyNCAxNC43NTQ2IDM1LjE1QzE0Ljc0MiAzNS4xNTg4IDE0LjczMjUgMzUuMTY1MyAxNC43MjY0IDM1LjE2OTZDMTQuNzIzMyAzNS4xNzE3IDE0LjcyMTEgMzUuMTczMiAxNC43MTk3IDM1LjE3NDJDMTQuNzE5IDM1LjE3NDcgMTQuNzE4NSAzNS4xNzUgMTQuNzE4MiAzNS4xNzUyQzE0LjcxODEgMzUuMTc1MyAxNC43MTggMzUuMTc1MyAxNC43MTc5IDM1LjE3NTRDMTQuNzE3OSAzNS4xNzU0IDE0LjcxOCAzNS4xNzU0IDE1IDM1LjU4ODJDMTUuMjgyIDM2LjAwMTEgMTUuMjgyMiAzNi4wMDEgMTUuMjgyNCAzNi4wMDA5QzE1LjI4MjUgMzYuMDAwOCAxNS4yODI4IDM2LjAwMDYgMTUuMjgzMSAzNi4wMDA0QzE1LjI4MzYgMzYgMTUuMjg0NCAzNS45OTk1IDE1LjI4NTQgMzUuOTk4OEMxNS4yODc0IDM1Ljk5NzQgMTUuMjkwMiAzNS45OTU1IDE1LjI5MzkgMzUuOTkyOUMxNS4zMDEyIDM1Ljk4NzkgMTUuMzExOSAzNS45ODA1IDE1LjMyNTcgMzUuOTcwOUMxNS4zNTM0IDM1Ljk1MTYgMTUuMzk0IDM1LjkyMzIgMTUuNDQ2NSAzNS44ODZDMTUuNTUxNiAzNS44MTE1IDE1LjcwNDYgMzUuNzAxNCAxNS44OTg4IDM1LjU1NzlDMTYuMjg3MSAzNS4yNzA4IDE2Ljg0MDIgMzQuODQ5NCAxNy41MDMyIDM0LjMwOTZDMTguODI4NCAzMy4yMzA1IDIwLjU5NjYgMzEuNjc0OSAyMi4zNjY0IDI5Ljc2OTJDMjUuODg2MiAyNS45NzkgMjkuNSAyMC43MTEgMjkuNSAxNUgyOC41Wk0xNSAxLjVDMjIuNDU1OCAxLjUgMjguNSA3LjU0NDE2IDI4LjUgMTVIMjkuNUMyOS41IDYuOTkxODcgMjMuMDA4MSAwLjUgMTUgMC41VjEuNVpNMS41IDE1QzEuNSA3LjU0NDE2IDcuNTQ0MTYgMS41IDE1IDEuNVYwLjVDNi45OTE4NyAwLjUgMC41IDYuOTkxODcgMC41IDE1SDEuNVpNMTUgMzUuNTg4MkMxNS4yODIgMzUuMTc1NCAxNS4yODIxIDM1LjE3NTQgMTUuMjgyMSAzNS4xNzU0QzE1LjI4MiAzNS4xNzUzIDE1LjI4MTkgMzUuMTc1MyAxNS4yODE4IDM1LjE3NTJDMTUuMjgxNSAzNS4xNzUgMTUuMjgxIDM1LjE3NDcgMTUuMjgwMyAzNS4xNzQyQzE1LjI3ODkgMzUuMTczMiAxNS4yNzY3IDM1LjE3MTcgMTUuMjczNiAzNS4xNjk2QzE1LjI2NzUgMzUuMTY1MyAxNS4yNTggMzUuMTU4OCAxNS4yNDU0IDM1LjE1QzE1LjIyMDEgMzUuMTMyNCAxNS4xODIgMzUuMTA1OCAxNS4xMzIgMzUuMDcwM0MxNS4wMzIgMzQuOTk5NCAxNC44ODQzIDM0Ljg5MzIgMTQuNjk1NyAzNC43NTM4QzE0LjMxODQgMzQuNDc0OCAxMy43Nzc3IDM0LjA2MyAxMy4xMjgyIDMzLjUzNDFDMTEuODI4NCAzMi40NzU4IDEwLjA5NjYgMzAuOTUxNyA4LjM2NjM4IDI5LjA4ODdDNC44ODYxOSAyNS4zNDEyIDEuNSAyMC4zMTUxIDEuNSAxNUgwLjVDMC41IDIwLjcxMSA0LjExMzgxIDI1Ljk3OSA3LjYzMzYyIDI5Ljc2OTJDOS40MDM0MiAzMS42NzQ5IDExLjE3MTYgMzMuMjMwNSAxMi40OTY4IDM0LjMwOTZDMTMuMTU5OCAzNC44NDk0IDEzLjcxMjkgMzUuMjcwOCAxNC4xMDEyIDM1LjU1NzlDMTQuMjk1NCAzNS43MDE0IDE0LjQ0ODQgMzUuODExNSAxNC41NTM1IDM1Ljg4NkMxNC42MDYgMzUuOTIzMiAxNC42NDY2IDM1Ljk1MTYgMTQuNjc0MyAzNS45NzA5QzE0LjY4ODEgMzUuOTgwNSAxNC42OTg4IDM1Ljk4NzkgMTQuNzA2MSAzNS45OTI5QzE0LjcwOTggMzUuOTk1NSAxNC43MTI2IDM1Ljk5NzQgMTQuNzE0NiAzNS45OTg4QzE0LjcxNTYgMzUuOTk5NSAxNC43MTY0IDM2IDE0LjcxNjkgMzYuMDAwNEMxNC43MTcyIDM2LjAwMDYgMTQuNzE3NSAzNi4wMDA4IDE0LjcxNzYgMzYuMDAwOUMxNC43MTc4IDM2LjAwMSAxNC43MTggMzYuMDAxMSAxNSAzNS41ODgyWk0yMy44ODgzIDE1LjE2NDdDMjMuODg4MyAyMC4xNjQ1IDE5LjgzNTIgMjQuMjE3NiAxNC44MzU0IDI0LjIxNzZWMjUuMjE3NkMyMC4zODc0IDI1LjIxNzYgMjQuODg4MyAyMC43MTY4IDI0Ljg4ODMgMTUuMTY0N0gyMy44ODgzWk0xNC44MzU0IDYuMTExNzZDMTkuODM1MiA2LjExMTc2IDIzLjg4ODMgMTAuMTY0OSAyMy44ODgzIDE1LjE2NDdIMjQuODg4M0MyNC44ODgzIDkuNjEyNjIgMjAuMzg3NCA1LjExMTc2IDE0LjgzNTQgNS4xMTE3NlY2LjExMTc2Wk01Ljc4MjQxIDE1LjE2NDdDNS43ODI0MSAxMC4xNjQ5IDkuODM1NTUgNi4xMTE3NiAxNC44MzU0IDYuMTExNzZWNS4xMTE3NkM5LjI4MzI2IDUuMTExNzYgNC43ODI0MSA5LjYxMjYyIDQuNzgyNDEgMTUuMTY0N0g1Ljc4MjQxWk0xNC44MzU0IDI0LjIxNzZDOS44MzU1NSAyNC4yMTc2IDUuNzgyNDEgMjAuMTY0NSA1Ljc4MjQxIDE1LjE2NDdINC43ODI0MUM0Ljc4MjQxIDIwLjcxNjggOS4yODMyNiAyNS4yMTc2IDE0LjgzNTQgMjUuMjE3NlYyNC4yMTc2WiIgZmlsbD0iI0UwRTBFMCIvPgogICAgPGNpcmNsZSBjeD0iMTUuMDAwMSIgY3k9IjE1LjAwMDEiIHI9IjYuMzM3MjEiIGZpbGw9IiM2RkNGOTciIHN0cm9rZT0iIzIxOTY1MyIvPgo8L3N2Zz4=",
      "public": true
    }
  ]
}