---
title: 'EdgeHub Release Note'
disqus: hackmd
---
:memo:EdgeHub Release Note v2.2
===
## Version Release
## Version: 2.2.17 (2024/09/13)
### Device Management
#### [New]
* Web page
* In the Device Group, add group description in the device group list
#### [Update]
* Web page
* When the user deletes a device which is bind with data object, web page will dispaly an error message which includes the related group and object name
* Center API
* Add error codes in the device create API:
* Device Quota is reached
* Add error codes in the device delete API:
* The device is bind with data object
* The device is still in the Device Group
#### [Fix]
* Device Group
* [#38713] [DPM] Suggest to remove the Refresh button in Device Group
* [#38939] [DPM] The user who doesn't have the premission of device shouldn't do schedule function on this device
* [#38364] [DPM] Schedule list should be removed when related device is remoced from device group
* Others
* [#38721] [DPM] Suggest to remove the Add member button
* [#38683] [DPM] The offline Edgelink device shouldn't do File management function
* [#38803] [DPM] The list of config file of WISE module is not correct
* [#38777] [DPM] [DM/DPM] The web page will be in loading status if deleting a device with binded parameter.
### Data Management
#### [Update]
- #### Core
- [Cleaner] Update the versions of the Jettison, RabbitMQ, and MongoDB drivers to fix the vulnerabilities detected on Harbor.
- [Worker] update handle tag add/update reload data
- [api-portal] replace 'tagValChange' with 'reloadData' property in mqtt
- [api-portal] add DEVICE_BOUND err code
- [Packer] Reduce the frequency of checking whether hour/day blob data needs to be deleted.
- [Archiver] When writing rawdata, check the index before each bulk-write.
- [Archiver-restore] When writing rawdata, check the index before each bulk-write.
- #### Data management
- [Agreement] Update Trial Agreement Version to 5.0
- [Agreement] Update Subscribe Agreement Version to 4.0
#### [Fix]
- #### Core
- [#37948][Evaluator][DM] There are 2 record log when update the setting of cal parameter
- [Cleaner] A lot of unnecessary debug messages contain: `state should be: writes is not an empty list`.
- [Worker] Value of #MSYS_EdgeStatus wrongly updated by tag value change
- [#38801][Worker] Wrongly handle array tag data that cause alarmCode alarm cannot be triggered.
- [Worker] reload data true should not save raw data if tag type is calculation
- [#38968][Worker][DM] String type of constant parameter not be shown value after creating
- [#38985][api-portal][DM] Some users can't chage the tenant role
- [#38984][api-portal][DM] User can't be disable
- [DBCreator] Extend the length of ForwardingAuthInfo.AuthUri & PluginAuthInfo.AuthUri from 1024 to 2048
- [Subscribe] EdgeHub will send an unnecessary `D-5 days trial expiration notice` email to subscribed tenant users.
- [Subscribe] Subscribed tenant becomes disabled on the due day and recovers after the deduction.
- #### Data management
- [#38753][DM] The length of token string should larger than 1024
- [Parameter] the custom function help is not visible at low resolution window.
- [Parameter] the `default value change` is not submitted if the user only edits the alarm.
- [Tenant management] Prevent text overflow in switch status dialog
- [Tenant management] Disable confirm button of switch status dialog when status is not changed
- [Alarm group] Add/Edit AlarmGroup page cannot scroll at low resolution window.
- #### Command center
- [#38673][DM] There is a "timeserie" item on the panelType droupbox when create a dashboard
- [#37889][CC] Command center can't show the same parameters of group via reportGroupInfo function
## Version: 2.2.16 (2024/08/30)
### Device Management
#### [Update]
* Web page
* For Configuration file OTA in My Device and Device Group, only list the corresponding model's configuration files.
* In Device Group, add a timer to refresh the progress/result of firmware OTA and configuration OTA
* In My Device list and Device Group, the refresh timer will not be triggered until the previous refresh operation is finished
* Backend services
* For following services, use internal host(ex: Database services) first if internal host exists in the environment varialbe:
* DPM Cleaner, DPM Cert Notify,BS Worker, BS Write Worker
* Center API
* Add the device delete API
* Add error codes for duplicate MAC address and duplicate device name for the device create API
#### [Fix]
* Device IO Configuration
* [#38491] [DPM] The WISE-4012 Universal Input can't be set
* [#38543] [DPM] The AI field title of WISE-4012E is not the same with WISE utility
* [#38599] [DPM] The AI field title of WISE-4010LAN is not the same with WISE utility
* [#38598] [DPM] WISE-4012E Min. High/Low Signal Width could't be edited on Counter mode
* [#38601] [DPM] Alarm Value can't be set when set high/Low Alarm Value to point
* Multi-Languages
* [#38627] [DPM] The translation of config OTA should be the same
* [#38626] [DPM] Some items of config OTA aren't translate to Mandarin
* [#38646] [DPM] The result of OTA should bo translate to Mandarin
* [#38475] [DPM] Some items aren't translate to Mandarin when add Computer device
* Others
* [#38370] [DPM] The process of OTA won't be auto refresh when doing OTA on device group
* [#38676] [DPM] The behavior are not the same at page number input feature
* [#38677] [DPM] The error message to SCADA/Edgelink devices be set to "Construction" mode in Device groups
### Data Management
#### [New]
- #### Core
- [Login] Support login by MyAdvantech account
#### [Update]
- #### Core
- [Subscribe] If an expired `Custom` tenant’s expiration date is manually extended, its status will be changed to enable.
- [Subscribe][API] For free trial RESTFul API, verify if the tenant owner is existed or not.
- [api-portal][API] Add error status code for create device APIs
- [Evaluator] When writing rawdata, check the index before each write.
- [Evaluator] Parameters that fail to compile the formula will still record RAWData with quality=bad.
- [Evaluator] Update the parameter description text for `ValidateParam` function.
- #### User management
- [Group User] Hide user list when access authentication is missing; add "Join Group" button and "Cannot access group" description
#### [Fix]
- #### Core
- [Forwarding] The total count displayed from the search is incorrect.
- [Plugin] The total count displayed from the search is incorrect.
- [Import-export] remove `<br>` from import error message
- [Packer] Disable the remove function but still remove the backed-up data from MongoDB.
- [DataWorker] Error handling for WISE-PaaS MQTT config uploaded in multiple messages.
- [#38538][DataWorker] Some WISE devices lost tags of Ipaddr, macid, name, and status
- [config-loader] Error handling for WISE-PaaS MQTT config uploaded in multiple messages.
- #### Data management
- [Parameter] The `!=` in the formula is not correctly validated.
- [Parameter] In the parameter alarm, after adding an alarm and switching the tab to ‘basic,’ then switching back to ‘alarm,’ the alarm disappears.
- [Tenant management] When the parent tenant's available quota is negative, an error occurs where the current level tenant cannot return the quota.
- [Tenant management] the width of "Tenant name" is not initialization when the page is visited for the first time.
## Version: 2.2.15 (2024/08/16)
### Device Management
#### [New]
* Web pages
* In My Device/Device Group/File Mangement, add page number input feature for the pagination.
#### [Update]
* Mass Device Deployment
* Modify the max CSV file length from 20 to 32 characters
* Playbook(Scheduling)
* Remove unused queues in the RabbitMQ
* Bootstrap Worker(Mass Device Deployment)
* Remove unused queues in the RabbitMQ
#### [Fix]
* Multi-Languages
* [#38366] [DPM] Some device group function translation can be modified
* [#38476] [DPM] Some items of config OTA of WISE device aren't translate to Mandarin
* [#38475] [DPM] Some items aren't translate to Mandarin when add Computer device
* [#38375] [DPM] Some COTA function of WISE isn't translated to Madarin
* [#38401] [DPM] The language of device patch task warning msg is not correct
* Others
* [#38419] [DPM] User can't get the device list when add device on new device group
* [#38402] [DPM] UI suggestion of group OTA
* [#38314] [DPM] The SCADA/Edgelink devices can be set to "Construction" mode in Device groups
### Data Management
#### [Update]
- #### Core
- [Dataworker] update log for efk monitoring
- [Dataworker] support LoRaWAN server/child device data
- [Dataworker] support restore device tag info from postgres
- [Evaluator] performance enhancement for the formula of plugin
- [api-portal] device APIs (GraphQL, RESTFul) add parentId
- [api-portal] when update root group name or set tenant ,sync sc org
- [api-portal] dashboard/sc org name = tenant name, no more sequence number behind org name
- [Packer] Add daily blob backup report
- [Packer] Add statistics api for diagnostic
- #### Data management
- [Portal] Invalidate the old freeTrial route
- [Portal] Allow scroll on first column of table:
- tenant table of Tenant management
- role table of Role management
- permissions table of the Edit Role
- #### Command Center
- [Datasource] Rename dashboard datasource to `EdgeHub-SimpleJson`
#### [Fix]
- #### Core
- [Evaluator] Create `rawdata` collection without adding index
- [Archiver] create `min` collection without adding index
- [Archiver-restore] Create `min` collection without adding index
- [Archiver-restore] RAWData data time incorrect may cause the restore process to excessively restore data.
- [Dataworker] redis disconnect will lost data if message process not finish
- [Dataworker] re-upload config, the sub-device id will not be updated
- [Profile] Import profile with empty statetxt may cause error
- #### Data management
- [#38498][Channel setting][DM] The event setting of email can't be set to disable
## Version: 2.2.14 (2024/08/02)
### Device Management
#### [Update]
* Batch Create Device
* Add Update time field in detail log page
* Center API
* Device List API: Add ip address for ADAM modules
* Add APIs for ADAM/WISE modules to perform Firmware/Configuration file OTA
#### [Fix]
* Multi-Languages
* [#38240] [DPM] Some iBMC function are't translated to Madarin
* [#38369] [DPM] Some File management function are't translate to Madarin
* [#38379] [DPM] The result of file magement should be translated to Madarin
* [#38365] [DPM] Some device group function are't translate to Madarin
* [#38380] [DPM] Some device batch task function of WISE isn't translated to Madarin
* [#38381] [DPM] The language of mass deploy is not the same
* [#38372] [DPM] Some CFG OTA function translation can be modified
* Others
* [#38307] [DPM] The drop down UI can be adjusted when select "Shared with me" on device group
* [#38315] [DPM] The parent group can access the info of sub-group in "Event" page.
* [#38278] [DPM] The create date of device batch task aren't changed
### Data Management
#### [Update]
- #### Core
- [Worker] Set minimum notification interval to 1 min
- [Worker] Reconnet Azure IoTHub when err occurs
- [api-portal] update signin error msg; distinguish invalid username or password
- [api-portal] root tenant admin = dashboard main org Admin, otherwise, give viewer
- [api-portal] update health check route `livez`
- [Evaluator] Send system issue notification while liveness prove failed
- [Evaluator] If source tag `#EdgeStatus` without any value, use `0` as default value for calculation.
- [api-subscribe] Check tenant name with spectial special characters: ` `, `-`, `_`
-
#### [Fix]
- #### Core
- [#38266][api-portal][DM] The quota of sub tenant can be used again when delete the object
- [Worker] Change the value #MSYS_EdgeStatus tag incorrectly
- [Worker] Missing isNumber attribute of #MSYS_EdgeStatus tag while adding device
- [Worker] Missing default value of #MSYS_EdgeStatus tag while adding device
- #### Data management
- [Parameter] duplicated error message in DataType field
- [Forwarding] After adding `Bearer Auth`, didn't display the result immediately
- [Forwarding] Switch token type may cause save Auth failed
- [api-subscribe] Subscribed tenant will get trial expiration email
- [api-subscribe] Quota sync incurrectly while version migration
## Version: 2.2.13 (2024/07/19)
### Device Management
#### [New]
* Center API
* Add APIs which could be called by user's applications(ex: ADAM Utility, EdgeLink Studio).
* Center API provides following features:
* Create new tenant and user account for EdgeHub (integrate with subscribe API)
* User login and tenant selection
* Get all device list, credential and info in the tenant
* Create device
* EdgeLink project file
* Upload/download EdgeLink project file
* Perform OTA and log query
* EdgeLink firmware OTA and log query
#### [Update]
* DPM API
* Add edition field in the system capability API
#### [Fix]
* Others
* [#38188] [DPM] The computer device can go online via "LOGIN EDGEHUB" method even if the X.509 cert has been revoked.
### Data Management
#### [Update]
- #### Core
- [Worker] worker will process all config without validating message data time
- [Worker] worker will process hbt, conn, desc and other non data message if these messages is after the last data time
- [Evaluator] Support K8S liveness / readiness probe
- [Archiver] Support K8S liveness / readiness probe
- [Archiver] system issue notification to PM list
- [Archiver-restore] Support K8S liveness / readiness probe
- [Archiver-restore] system issue notification to PM list
- [api-portal] system issue notification to PM list
- [Subscribe] Update error message code form 404 to 400
- [Subscribe] Update free trial email template
- #### Data management
- [Object] While create object from device, load discrete tag's descriptor to new parameter automatically.
#### [Fix]
- #### Core
- [Worker] system tag not have online offline state in the device tag info
- [Worker] device sentry should use last active time to check if device is not sending message and over hbt
- [Config-loader job] DO tag should not be read only
- [Alarm] Alarm log API may deadlock that will cause API timeout
- [Evaluator] TotalObjects may not find some parameters to calculate
- [Evaluator] timestamp with negative time zone may cause parsing error
## Version: 2.2.12 (2024/07/05)
### Device Management
#### [Update]
* Mass Device Deployment
* Add heartbeat monitoring for the connection between the BS worker and RabbitMQ
* DPM API
* Upgrade the SDK version of Azure Iot Hub to fix the enable/disable device feature due to Azure Iot Hub upgrades to GWV2
* Web page
* Use API to check if the used license exceeds quota in parent and current tenant
* In the File Management page, add auto refresh of file dispatch result and adjust the width of the side page.
* In the Device Group page, remove the description filed for the EdgeLink firmware OTA
* Remove pprocAcls filed in the user info GraphQL query
#### [Fix]
* Others
* [#38123] [DPM] Error occurred if GeneralPC revoke X.509 cert
* [#38138] [DPM] The process of OTA won't be auto refresh
* [#37915] [DPM] device group can't be deleted when other user with admin permission create a sub group under the same device group
* [#37906] [DPM] The permission and alert message are not correct if parent tenant has insufficient quota.
### Data Management
#### [Update]
- #### Core
- [Worker] Send worker issue by email/Line/WeCom
- [Worker] update log format
- [Alarm] update log format
- [api-portal] update log format
- [api-portal] While not select Object type, give default type automatically.
- [archiver] Support livenessProbe and readinessProbe
- [archiver-restore] Support livenessProbe and readinessProbe
- [archiver] update cumulative next data over recording
- [archiver-restore] update cumulative next data over recording
- [api-subscribe] Get list prise of customer from marketplace
- #### Data management
- [Tenant management] Trial tenant can modify quota
- [System notification] Add WeCom setting page
- [Portal] New trial home page
- [Portal] Check device quota at home page
- #### Command Center
- [datasource backend] Modify partial-function check to improve query time
#### [Fix]
- #### Core
- [archiver] cumulative min incorrect
- [archiver-restore] cumulative min incorrect
- [#38089][Packer][DM] The raw data of constant parameter is miss from 6/12~6/27
- [#38088][Worker][DM] The constant parameter is not be record from 6/27
- [#37948][Evaluator][DM] There are 2 record log when update the setting of cal parameter
- [#37394][Archiver][DM] Negative value will be ignore even use the enable negative mode
- [#37947][Evaluator][DM] The value of cal parameter with primitive parameter won't be changed when primitive parameter is deleted
- [#37943][Evaluator][DM] Change the source of primitive parameter, the value of calc parameter with primitive parameter won't be changed
- [#37890][Evaluator][DM] The memory used by evaluator will not be released even if the calc parameters are deleted.
- [Notification] notify message Org {Address} with address1 + address2
- #### Data management
- [#37907][DPM] The permission and alert message are not correct if parent tenant has insufficient quota.
- [#38046][Parameter][DM] User can't create a parameters on profile when the quota of Tenant is not enough
- #### Command center
- [#38082][Worker][CC] Controller/Control Panel cannot control/set the EdgeLink DO/AO/UserTag value.
- [#37888][Worker][CC] Controller/Control Panel cannot control/set the WISE-4012E/ADAM-6024 DO/AO value
## Version: 2.2.11 (2024/06/21)
### Device Management
#### [Update]
* Mass Device Deployment
* Improve the reconnect mechanism between the BS worker and RabbitMQ
* Bootstrap device API: Use environment variable to control the maximun api call amount within one minute
* Web page
* Improve the device list display when the filter of device online/offline is enable
* Remove the additional loading icon when entering My Device page
* API
* If the query of the device online status is failed, add default value in API response to prevent the page loading fail in My Device list.
#### [Fix]
* Others
* [#37793] [DPM] It will show no data when the user wants to add more PC to do schedule
* [#37941] [DPM] Devices occasionally fail to create and go online through mass deployment.
### Data Management
#### [Update]
- #### Core
- [Worker] Support traffic limit notification
- [Worker] improve etcd register reliability
- [api-portal] Default parameters in GroupObject cannot be deleted
- [Notification] support send system issue mail by amqp topic
- [Subscribe] Set default expiration date of trial tenant as unlimited
- [Datapacker] Optimize logic of deleting blob data
- #### Data management
- [Portal] Disable `Object type` field of GroupObject
- #### Command Center
- [Dashboard datasource] Change monthly alarm count column as option by adding an additional `markMonthlyCount` switch in `alarmlog_record` function.
#### [Fix]
- #### Core
- [Worker] Fix azure iot hub next incoming id nill issue
- [Worker] Cannot see historical data of Text parameter
- [Evaluator] Add group with calculation parameters but didn't calculate these parameters
- [Evaluator] Some calculation calculation parameters suddenly stop calculating
- [Evaluator] Refresh RTData tag list buffer may add redundant data
- [Evaluator] TotalObject calculation may fail
- [#37976][Worker][DM] The device connection status is abnormal.
- [#37924][api-portal][DM] It takes time to delete a group
- [#37896][api-portal][DM] EdgeHub will be crash when import the excel without parameters info in it
- [#37783][api-portal][DM] It takes time to delete a object
- [#37394][Archiver][DM] Negative value will be ignore even use the enable negative mode
- #### Data management
- [Portal] After parameter created, didn't refresh page well
- #### Command Center
- [#37888][Dashboard datasource] Cannot set value by Control Panel
## Version: 2.2.10 (2024/06/07)
### Device Management
#### [New]
* Add model name for EdgeLink firmware OTA files
* In My Device and Device Group, add the model name filter for EdgeLink firmware OTA files
* In Device Management Portal, the user could add model name for EdgeLink firmware OTA files.
* If the user adds the EdgeLink firmware file, the model name is required.
* If the user edits the EdgeLink firmware file, the model name is optional.
#### [Update]
* Mass Device Deployment
* For ADAM/WISE models, simplify the payload in the RESTful API and MQTT message due to the firmware limitation
* Bootstrap worker: improve the RabbitMQ reconnection mechanism
* Modify the tranditional Chinese name of Mass Device Deployment
* Web page
* Display the warning message when the used qty exceeds the license quota
* In My Device, add auto refresh of Tags
* Improve the iApp menu loading
#### [Fix]
* Mass Device Deployment
* [#37658] [DPM] The first letter of English letters should be capitalized
* [#37660] [DPM] Device result text in mass deployment page should be translated to mandarin
* Device Group
* [#37786] [DPM] It only lists 50 devices when add existing device on second times
* [#37787] [DPM] The layout is changed when add 100 devices on device group
* [#37784] [DPM] The device group can't be deleted
* Fix: Can not create a new group in certain situation
* Others
* [#37761] [DPM] The add button won't be grayed out untile check the license quota is overused
### Data Management
#### [Update]
- #### Core
- [Evaluator] Improve thread guard function
- [Archiver] When processing rawdata, the second-level precision is changed to millisecond-level precision.
- [Archiver-restore] When processing rawdata, the second-level precision is changed to millisecond-level precision.
- [Packer] Imporving Blob folder path parsing.
- [Plugin] Use service name as URL rather than full path URL
- [User function] Use service name as URL rather than full path URL
- #### Data management
- [Parameter] Remove -1 and 0 from calculation frequency's valid value. The new range would be 1~3600
- #### Command center
- [Datasource] When querying object/parameter list, you need to select at least one group, otherwise it will return empty
- [Datasource] Add global error processing to prevent crashing
#### [Fix]
- #### Core
- [Subscribe service] One tenant deduction fail will call all tenant retry (waste performance by won't cause duplicated deduction)
- [Archiver-restore] Incorrect MarkFirstValue function causes incorrect day data
- [#37763][Import-export][DM] Error occurred if import object with 50k calc parameter.
- [#37762][Data packer][DM] datapacker OOM
- [#37646][api-org][DM] ifactory pod terminated causes EdgeHub login failed.
- [#37772][Dataworker][DM] String type of constant parameter not be shown value after creating
- [#37711][Evaluator][DM] Some TimeMatch formula won't be recorded when recording for a while
- [#37583][api-portal][DPM] Use the mass device devlop, but it met the error of device name is repeated
- [#37553][Evaluator][DM] The total count of math cal parameter is not 86400
- [#37543][Evaluator][DM] The calc parameters of math function will miss the rawdata on 00:00:00
- [#36869][Evaluator][DM] Calc parameter raw data is delayed by 2 mins
- #### Command center
- [#37724][Data source][CC] Use the Ene dashboard switch, select 3 groups but there are only 2 groups be seen
## Version: 2.2.9 (2024/05/24)
### Device Management
#### [Update]
* Mass Device Deployment
* Web: Change the status name from 'Succeed' to 'Success'
* Web: Remove Edit action when the status is 'Failed'
* ADAM/WISE modules: Due to the firmware limitation of the ADAM/WISE modules, remove the CA certificate value in the response of the device register RESTful request.
* UI modification for License quota
* When the used qty exceeds the license quota, the web UI is modified:
* If the user has the Admin role in the user group, the user can only perform view and delete device operations.
* If the user has the Viewer role in the user group, the user can only perform the view operation.
#### [Fix]
* Mass Device Deployment
* [#37659] [DPM] Device result text change in mass deployment page
* [#37582] [DPM] The quota is enough but it will popup a error message when doing mass device deploy
### Data Management
#### [Update]
- #### Core
- [Worker] Save isensing no config tag informations into mongo
- [Worker] Support WISE-PaaS MQTT config format without type definition (in spec v1.0.17)
- [Evaluator] improve performance of `getGroupParamSum`, `getGroupAlarmStatus`, `getObjectAlarmStatus` functions
- [Evaluator] TimeMatch on time trigger
- #### Data management
- [License management] Add captcha in apply free trial form
- #### Command Center
- [Dashboard function] reportGroupInfo function support daily records
#### [Fix]
- #### Core
- [Worker] Redis down and without pvc may cause device info / tag list lost
- [Worker] Remove duplicated index in mingodb
- [All backends] Remove write log to Redis for ELK monitoring
- [Evaluator] Calc parameter not showing value after created
- [Archiver] RabbimtMQ queue data accumulation
- [import-export] if parameter data type is descrete and the descriptor is not fill in, dc-import-export-service will crash
- [Packer] redundant fields in redis
- #### Data management
- [Tenant management] LicensedSubtenant's quota cannot be allocated
- [Parameter] Cannot scroll to bottom of Custom function help dialog
## Version: 2.2.8 (2024/05/10)
### Device Management
#### [New]
* Mass Device Deployment
* The user adds the device's MAC address in DPM.
* The device connects to the Bootstrap server to obtain device credentials and then connects to DPM automatically.
#### [Update]
* Batch Create Pod
* Increase the speed of the device creation
* My Device
* Switch the position of the Operation icon and the Construction icon.
#### [Fix]
* Device search
* [#37443] [DPM] There is no max length when serach the device via device name
* [#37444] [DPM] There should be no special chatacters when serach device via device name
* [#37445] [DPM] There should different error message when search device via mac address
### Data Management
#### [Update]
- #### Core
- [Packer] Prevent to delete blob data while `savefreq` change to 0 or change primitive parameter's binding tag
- [Packer] Save cold data backup history list to blob to prevent Redis data lost.
- [Import-export] support import with reload data
- #### Data management
- [License management] skip license key to apply free trial
- [Portal] Update `Timematch` function desciption
#### [Fix]
- #### Core
- [Import-export] Handle recRate as millisecond, but it should be second.
- [Import-export] Descriptor value = empty braces will cause crash
- [#37452][Worker][DM] The data type will be changed when adding parameters by device
- [#37288][Worker][DM] The tag type of EdgeLink device is abnormal.
- [#37283][Worker][DM] The value will be changed to 10000000000000000 when setting the default value of const parameter to 9999999999999999
- [Worker] Data may not save while match save criteria (data queue full or longer than 60s)
- [#37413][Evaluator][DM] The trigger of Timematch is not correct by TimeZone
- [Archiver] Wrong handle of maxChangeRatePerMin for `Current` type parameter.
- [Archiver] Didn't sync restored day data to Archiver correctly.
- [Archiver-restore] Didn't restore day data correctly.
- [DBMaster] Text parameter's logs will display more than 10 records
- #### Data management
- [#37403][DM] The value of max change /min will be change from 999999999 to 100 when submit
- #### Command center
- [Datasource] Cannot use `Table` format to display discrete parameter's descriptor.
## Version: 2.2.7 (2024/04/26)
### Device Management
#### [New]
* Add a search filter in My Device and Device Group
* Add search of the device's MAC address
* This feature does not include the search of EdgeLink Gateway ID or SCADA Node ID
#### [Update]
* UI Update
* Modify the style of Add button and search filter in My Device, Device Group and AppHub Repo
* Batch create device
* Copy the device description to other languages(Traditional Chinese, Simplified Chinesel, Japanese) in addition to English.
#### [Fix]
* Others
* [#37168] [DPM] Some text typo in 'Device Batch Task' page.
### Data Management
#### [Update]
- #### Core
- [Portal] Add `System notification` setting in Advanced setting of Root tenant
- [Portal] If a calculation formula includes `Custom function` or `Plugins`, set a minimum limit for the `calculation frequency` to 60 seconds.
#### [Fix]
- #### Core
- [archiver-restore] Fix wrong restore of day data
- [#37388][Worker][DM] If the record type of the corresponding parameter is set to cumulative, the device's tag data type will be changed to unknown.
- [#37331][Worker][DM] dc-dataworker-device-sentry pod OOM after importing 50K parameter object.
- [#37291][Worker][DM] Some coil/reg tags of WISE-4051 are not generated on Edgehub.
- [#37287][Worker][DM] Future data from edge devices causes workers to enter traffic limits.
- [#37253][Worker][DM] The last connected and last updated time is abnormal.
- [#37207][Worker][DM] The SCADA device online/offline status is abnormal under 400,000 parameters loading test.
- [#37238][api-portal][DM] default vaule of parameter of group can't be modified
- [#37389][Evaluator][DM] TotalObject won't be trigger when set to check the value of parameter
- [#37290][Evaluator][DM] calc parameter of plugin won't record by every minute
- [#37284][Evaluator][DM] The vaule of TimeObject(-1) won't be changed when the amoumt of object is changed
- [#37201][Evaluator][DM] It won't calculate when import calc parameters
- [#37056][Evaluator][DM] The value of calc parameter will return to 0 when evaluator restart
- [#36879][Evaluator][DM] TimeMatch formula will be trigger twice
- [#36869][Evaluator][DM] Calc parameter raw data iis delayed by 2 mins
- [#36863][Evaluator][DM] Calc parameter won't be recorded by every minute
- [#36815][Evaluator][DM] The vaule of TotalObject formula won't be changed when add a new object
- [#36814][Evaluator][DM] Timematch formula won't be triggered
- [#36813][Evaluator][DM] The value of calc parameter within device tag is always 18
- [#36812][Evaluator][DM] Calc parameter doesn't get data value on each minutes
- [#36781][Evaluator][DM] Timematch formula of everyyear won't be triggered on the date of 0229
- #### Data management
- [#37220][DM] The negative quota subtenant can be created if the quota of parent tenant is full.
- [#36892][DM] The object import button is enable even if the parent tenant has insufficient quota.
- [#37328][Import-export][DM] The error message of import is hard to understand
- [#37205][DM] child tenant can add parameters via import when parent's quota is over used
## Version: 2.2.6 (2024/04/12)
### Device Management
#### [Update]
* Auto refresh of the device firmware OTA status
* Include the OTA status of EdgeLink, ADAM, WISE modules
* Add the EdgeLink OTA stage display
* When the EdgeLink OTA is in progress, display 'Downloading' or 'Upgrading' in progress bar
* This feature includes firmware OTA and project file OTA
#### [Fix]
* Others
* [DPM] Fix multi-language does not work in the table header of Batch Create Device
* [#37098] [DPM] Webpage won't be refresh after enable the cert revoke
* [#37168] [DPM] Some text typo in 'Device Batch Task' page.
### Data Management
#### [Update]
- #### Core
- [Archiver] Modification to the calculation method for cumulative parameters.
- [Archiver-restore] Modification to the calculation method for cumulative parameters.
- [Evaluator] Performance enhancement (TotalObjects)
- [Packer] Check memory status before any backup job
- #### Data Management
- [License] Print agreement
- #### User management
- [User management] Move “Device management” scope’s position
- [User management] Freeze scope column
#### [Fix]
- #### Core
- [#37208][DM] The api-portal and api-subscrbe services work abnormally, causing the EdgeHub homepage to be inaccessible.
- [#37169][Notification][DM] The parameter name with colon(:) cannot be parsed in notification message.
- [#37148][Worker][DM] The ai_stAVG tag name of WISE device is missing.
- [#37103][Worker][DM] The constant parameter of number type won't be recorded
- [#37056][Evaluator][DM] The value of calc parameter will return to 0 when evaluator restart
- [#36504][Evaluator][DM] Calc parameter doesn't calculate by every minute
- [#36425][Evaluator][DM] The calc parameter formula "TImematch" won't be triggered
- [#36327][Evaluator][DM] The Math of calc parameter isn't be recorded
- [#36326][Evaluator][DM] The formula of calc parameter isn't be recorded
- [#35892][Archiver-restore][DM] archiver restore service restart (OOM)
- [#37222][api-portal][DM] The expired date will be null when creating a new sub tenant on subscribe
- #### Data Management
- [#37237][Plugin][DM] Calc parameter of Basic Auth method can't get the value
- [#37206][DM] The error message is hard to understand when adding parameters via import and the quota of tenant is full
- [#37017][DM] The error message is not clearly if adding parameters (over subscribed quota) via importing object excel.
- [#36882][DM] The page loading display doesn’t make sense in 2000 parameter object.
- [#36922][DM] The error message is hard to understand when enter a wrong user to do retry deduction
- [#36921][DM] There is no any message when retry deduction is success or fail
- [#36904][DM] 'Print' button doesn't in Activate license key page.
- [#36685][DM] Wish it has a scroll bar when setting group permission
## Version: 2.2.5 (2024/03/29)
### Device Management
#### [Update]
* Web UI modification according to UI design
* Add System Setting in page header:
* Advanced setting, Tenant management, Switch language, Release note
* Modify Account Setting in page header:
* Account setting, Switch tenant, Logout
* Add Notification icon in page header:
* This icon is always disabled currently.
* Device Batch Task list: Remove "Result" field and change "Status" field to "Task result" field
* Modify all text: Change from "Created time" to "Date created"
#### [In Development]
* Batch Create Device
* Add a feature to accept requests from the Bootstrap server. This feature is disabled in this version.
#### [Fix]
* Others
* [#36953] [DPM] Some text typo in Alarm/Event page
* [#36958] [DPM] Suggest to add 'Reload' radio button in editing constant parameter page
### Data Management
#### [Update]
- #### Core
- [api-portal] role name migration, The only special symbols left are " ", "-", "\_", and the rest of the special symbols will be replaced by "\_"
- #### Data management
- [Tenant management] partial function disabled of child tenants.
- [Tenant management] handle child tenant’s expired date modification.
- [Tenant management] alert on UI: insufficient quota: quota insufficient.
- [Tenant management] add tenant labels.
#### [Fix]
- #### Core
- [#37101][Archiver][DM] The wise-mplus-archiver service pod restarts many times during the performance test of 400,000 parameters loading.
- [#37100][Worker][DM] The ai_AVG and ai_stAVG tag will be generated even if the ADAM device don't publish the config.
- [#37023][Alarm][DM] The alarm of new created object (bound same device as old object) will be triggered even if the device is offline.
- [#37001][Worker] The COM1/Modbus/RTU tags name of WISE-4051 are not correct.
- [#36881][Alarm][DM] Part of parameter alarms are triggered after object excel import.
- [#37102][Worker][DM] There is no realtime value when create a new constant parameter
- [#36981][Worker][DM] Edgelink is continue online offline
- [#37091][Worker][DM] The tags of Edgelink is upload but there is no data and Edgelink is still offline
- #### Data management
- [#37018][DM] The object import button is disable if the quota of parameter is full used.
- [#36809][DM] user role permission of Group, object, and parameter can't set to user
- [#36773][DM] Menu item will disappear when use browser to open 2 pages to login to different tenant
- [#36686][DM] Set the admin permission of Dashboard & menu list, but there is no UI to show
## Version: 2.2.4 (2024/03/15)
### Device Management
#### [Update]
* Security Fix
* Update MongoDB library and Node version to fix CVE vulnerability
* Affected Pods: api-dpm, batch-device
#### [In Development]
* Device Management Portal
* Add settings for communication with Bootstrap server. This setting is disabled in this version.
* X.509 Certificate API
* Add feature: the X.509 intermediate certificate of the device could be chosen by the device serial number instead of the device orgId. This feature is disabled in this version.
#### [Fix]
* Others
* [#36889] [DPM] There is a text typo in add EdgeLink device page.
### Data Management
#### [Update]
- #### Core
- [DBMaster][RESTFul API] Adjust parameter apis to use parameter id as input (replace objId & objParam).
- [#36148][Worker] Support WISE new config format
- modbusserver_config
#### [Fix]
- #### Core
- [#36929][Worker][DM] Default value is not shown on UI
- [#36881][alarm][DM] Part of parameter alarms are triggered after object excel import.
- [#36871][alarm][DM] Actually 2079 alarm are triggered even if only 2000 parameter meet the alarm rule.
- [#36868][Worker] The worker enter in "Trafic limit" status unexpectedly.
- [#36862][Worker] The last value/quality/time of devices will be cleared after the version is updated.
- [#36816][import-export][DM] Event rule setting will not be exported in "isEnable" field in object excel.
- [#36808][api-portal][DM] Error occurred if import same object excel file after exporting.
-
- #### Data management
- [#36936][DM] It can be added parameters (over subscribed quota) via importing object excel.
- [#36922][DM] The error message is hard to understand when enter a wrong user to do retry deduction
- [#36908][DM] The tenant management edit page may have security issues.
- [#36891][DM] It can add negative number of devices and parameters in tenant management.
- [#36873][DM] Cannot export alarm report from dashboard alarm panel.
- [#36320][DM] The Parameter name in Variable library of Notification message is not sorted
- [#36944][DM] Expired tenant shouldn't be on the list when active the license key
- [#36683][DM] The admin permission of Profile management, it will show Not Found at first time to login
- [#36494][DM] It will auto create code list when creating cal parameter woth ";" + space
- [#36265][DM] It will take time (almost 6 seconds) to show the device list at first time when creating a primivite parameter
- [#36921][DM] There is no any message when retry deduction is success or fail
- [#36317][DM] Webpage error occurred if entering any character in First or Last name field in add from new alarm user page.
- [#35564][DM] Dialog boxes in DM and DPM behave differently if an invalid license key is entered.
## Version: 2.2.3 (2024/03/01)
### Device Management
#### [Update]
* Web Page Update
* Add text of minimum firmware version requirement when creating EdgeLink device
#### [Fix]
* Others
* [#36566] [DPM] The AI unit of ADAM device is incorrect in monitor page
* [#36688] [DPM] Add Group icon should be gray when use viewer permission to access
### Data Management
#### [New]
- #### Core
- [Portal] New tenant management UI
- Retry deduction
#### [Update]
- #### Core
- [Apps] Mongoose update to fix security issue
- [api-portal] Update Mongoose to v8.2.0
- [subscribe service] Update Mongoose to v8.2.0
- [api-devtool] Update Mongoose to v8.2.0
- [datasource backend] Remove Mongoose
- [api-plugin]Remove Mongoose
- [Subscribe service] due day, due day+30days logic change
- due day: disable tenant + email notification
- due day + 30 days: disable tenant / Reclaim allocated quota / email notification
- [Evaluator] Optimize the performance of normal formula calculation and `TotalObjects` function
#### [Fix]
- #### Core
- [#36730][Dataworker][DM] Edgelink devices are offline because the worker connection is break
- [#36704][Dataworker][DM] The worker enter in "Traffic limit" status if 5,760,000 message upload to EdgeHub simultaneously.
- [#36703][api-portal][DM] Part of alarm rule will not be enable (backend) if import object from excel.
- [#36676][api-portal][DM] Alarm rule will not be disable if import object from excel.
- [#36635][Dataworker][DM] The raw data will not be recorded if WISE device reconnect to edgehub.
- [#36634][Dataworker][DM] The breakpoint resume function work not correctly.
- [#36504][Evaluator][DM] Calc parameter doesn't calculate by every minute
- [Restore] Incorrect result in Discrete parameter restore
- #### Data management
- [#36692][DM] Use subscribe license and click the Getting support, AE account isn't be added automatically
- [#36687][DM] Set the viewer permission of Role list, it will show Insufficient permissions to view when access to user management of Root tenant
- [#36680][DM] Can't set the user permission of Group, object, and parameter
- [#36631][DM] Tenant owner shouldn't be selected to changed
- [#36527][DM] It will show "No parameter, yet" when switch 2 object with over 50 parameters
## Version: 2.2.2 (2024/02/07)
### Device Management
#### [Update]
* Align user role with User Management
* If user has 'Manage' permission in In-Outbound setting, user could perform all actions in DPM
* If user has 'Viewer' permission in In-Outbound setting, user could only perform view actions in device, device group, AppHub repository and file management
* If user has 'None' permission in In-Outbound setting, user can not enter DPM
* Add 'Back' button in Activate License Key dialog
#### [Fix]
* Others
* [#34888] [DPM] Viewer role can CRUD in DPM
* [#36423] [DPM] There is a weird page if switch page from 'Repository' to 'Progress' in Applications.
* [#36395] [DPM] The RS-485 tag value of WISE-4051 in Monitor page is NaN.
### Data Management
#### [New]
- #### Core
- [Portal] New tenant management UI
- New Activation agreement flow UI
#### [Update]
- #### Core
- [Portal] Remove onProxyReq,onProxyRes to improve proxy performance
- [Microservices] upgrade Node.js base image to 20.11.0-slim to prevent OOM issue in K8S 1.25.x
- [Microservices] upgrade Java base image to openjdk:18.0.2 to prevent OOM issue in K8S 1.25.x
- [api-portal] optimize gateways api performance
- [api-portal] when parent group name change, then notify all child group
- [api-portal] Add bound parameter info in tagAdd/tagUpdate mqtt message
#### [Fix]
- #### Core
- [Archiver] Incorrect first value for hour data will cause wrong HIS_AVG of hour data
- [Archiver] Archiver no response in dev site
- [#35892][Archiver][DM] archiver restore service restart (OOM)
- [ArchiverRestore] The waiting time between two restore tasks is too long
- [ArchiverRestore] Incorrect first value for hour data will cause wrong HIS_AVG of hour data
- [api-portal] wrong parameter's kept days for the parameters that is created before version 2.0.22
- [api-portal] PG connection timeout
- [api-portal] User with multiple tenant roles and roles with lower privileges come first (ex. assign `Viewer` first, then add `Admin`) will cause permission denied.
- [dbmaster] The field order for discrete raw data of API response (/data/CalculatedData/query) is wrong (should be "tagvalue", "quality", "datatime")
- [#36325][Alarm service][DM] Actually only 1431 alarm are triggered even if 2000 parameter meet the alarm rule.
- [#36482][Subscribe service] [DM] EdgeHub Login site address on email can't be accessed
- #### Data management
- [#35831][DM] Set 2 calc parameters to get the plugin value, there are 2 different data source but the value are the same
- #### User management
- [#34917][UM] Use the Command Center permission, but can't enable the anonymous login
- [#34683][UM] Create a command center permission,but can't access the command center
- #### Command center
- [#36343][dashboard backend] api-org-wise-mplus pod will crash If more than 5,000 data(dashboard panel) are accessed.
## Version: 2.2.1 (2024/01/26)
### Device Management
#### [Update]
* My Device List
* Adjust the width of device list to reduce the display possibility of horizontal scroll bar
* ADAM/WISE IO Configuration
* For Digital Input(DI) and Digital Output(DO) channel settings, add field name and valid value range in error message
* Java related Microservices
* Upgrade to JRE version which supports Cgroups v2
#### [Fix]
* Others
* [#36197] [DPM] The location of button will be shifted if select all in 'Select existing device' dialog in device group
* [#36146] [DPM] Cannot auto select WISE-4000/LAN series when pasting the device info
* ADAM/WISE IO Configuration: Fix Spelling error(Change from 'AI Alarm Drived' to 'AI Alarm Driven')
* [#36394] [DPM] The device 'quality' in tag page is missing in certain situation
### Data Management
#### [New]
- #### Core
- [Portal] New tenant management UI
- Allocate license quota functionality
- Allocate license quota in edit tenant functionality.
- Change tenant status (enable/disable)
- Display SIConsole/Subscribed/Manually created tenant in tenant list
#### [Update]
- #### Core
- [Archiver] Handle the special case of HIS_AVG computation for the parameter with `cumulative` recording type:
- data glitch to 0
- data glitch to 0 right after device online
#### [Fix]
- #### Core
- [Packer] Didn't send the delete parameter notification to Cleaner, which will result in the parameter's recording rate/hour/day data not being deleted.
- [Cleaner] Delete a parameter will also erase the historical data for other parameters within the same object, including recording rate / hour / day data.
- [#35915][Data restore] The text format data aren't not be recorded actually after stop and restart worker on 1225
- [#35892][Data restore] archiver restore service restart (OOM)
- [#36233][Worker] Edgelink device can't be connected on board
-
- #### Data management
- [#36234][DM] Parent tenant tree shouldn't be showed if parent tenant can't be changed
- [#36255][DM] Expired date can't earlier than today
- [#36260][DM] The total sum of quota is not correct
- [#36259][DM] Can't set the parent tenant when create a new tenant
- [#35862][DM] The calculation parameter code data source list is not correct if select the descendant-group.
- #### Command Center
- [#36319][CC] Alarm status can't be edited on Alarm panel
## Version: 2.2.0 (2024/01/12)
### Device Management
#### [New]
* New add/edit device UI
* New UI design for add and edit devices(ADAM, WISE, EdgeLink, SCADA, Computer)
#### [Update]
* My Device
* Display device creator's icon in the user column of device list
* Highlight device row when mouse over device list
* When device's certificate is revoked, disable certificate download and copy credential in Connect tab.
* X.509 Device Filter
* In My Device and Device Group, add filter to search if devices use X.509
#### [Fix]
* Multi-Languages
* Add translation in the dialog when delete device failed
### Data Management
#### [New]
- #### Core
- [Portal] New tenant management UI
- Tenant list
- Under root-tenant: Can view and manipulate complete tenant tree started from root-tenant.
- Under sub-tenant: Can view and manipulate itself and child tenants
- Add Tenant
- Under root-tenant: Can add sub-tenant under any node of tenant tree.
- Under sub-tenant: Can add sub-tenant under itself.
- Update Tenant
- Under root-tenant: Can update any tenant of tenant tree.
- Under sub-tenant: Can update itself and child tenants
- Activate license key
- Root tenant's direct child tenants can activate license key in this user interface.
- [Dataworker] Dataworker refactor
- New architecture to support multi-instance dataworker
## Version: 2.1.18 (2024/07/05)
### Device Management
#### [Update]
* None
#### [Fix]
* None
### Data Management
#### [Update]
- #### Core
- [Alarm] update log format
- [api-portal] While not select Object type, give default type automatically.
- [api-portal] For non iiot operated environment, set default expired date to null.
- [archiver] Support livenessProbe and readinessProbe
- [archiver-restore] Support livenessProbe and readinessProbe
- [archiver] update cumulative next data over recording
- [archiver-restore] update cumulative next data over recording
- [Notification] notify message Org {Address} with address1 + address2
#### [Fix]
- #### Core
- [worker] Send C2D message failed may cause unAcked queue full and block data consume.
- [archiver] cumulative min incorrect
- [archiver-restore] cumulative min incorrect
- [#38089][Packer][DM] The raw data of constant parameter is miss from 6/12~6/27
- [#37948][Evaluator][DM] There are 2 record log when update the setting of cal parameter
- [#37394][Archiver][DM] Negative value will be ignore even use the enable negative mode
- [#37947][Evaluator][DM] The value of cal parameter with primitive parameter won't be changed when primitive parameter is deleted
- [#37943][Evaluator][DM] Change the source of primitive parameter, the value of calc parameter with primitive parameter won't be changed
- [#37890][Evaluator][DM] The memory used by evaluator will not be released even if the calc parameters are deleted.
## Version: 2.1.17 (2024/06/21)
### Device Management
#### [Update]
* None
#### [Fix]
* None
### Data Management
#### [Update]
- #### Core
- [api-portal] Default parameters in GroupObject cannot be deleted
- [Subscribe] Set default expiration date of trial tenant as unlimited
- #### Data management
- [Portal] Disable `Object type` field of GroupObject
- #### Command Center
- [Dashboard datasource] Change monthly alarm count column as option by adding an additional markMonthlyCount switch in alarmlog_record function.
#### [Fix]
- #### Core
- [#37896][api-portal][DM] EfgeHub will be crash when import the excel without parameters info in it
- [#37394][Archiver][DM] Negative value will be ignore even use the enable negative mode
- #### Data management
- [Portal] After parameter created, didn't refresh page well
## Version: 2.1.16 (2024/06/07)
### Device Management
#### [Update]
* None
#### [Fix]
* Device Group
* Fix: Can not create a new group in certain situation
### Data Management
#### [Update]
- #### Core
- [Evaluator] Improve thread guard function
- [Archiver] When processing rawdata, the second-level precision is changed to millisecond-level precision.
- [Archiver-restore] When processing rawdata, the second-level precision is changed to millisecond-level precision.
- [Packer] Imporving Blob folder path parsing.
- [Plugin] Use service name as URL rather than full path URL
- [User function] Use service name as URL rather than full path URL
- #### Data management
- [Parameter] Remove -1 and 0 from calculation frequency's valid value. The new range would be 1~3600
- #### Command center
- [Datasource] When querying object/parameter list, you need to select at least one group, otherwise it will return empty
- [Datasource] Add global error processing to prevent crashing
#### [Fix]
- #### Core
- [Subscribe service] One tenant deduction fail will call all tenant retry (waste performance by won't cause duplicated deduction)
- [Archiver-restore] Incorrect MarkFirstValue function causes incorrect day data
- [#37763][Import-export][DM] Error occurred if import object with 50k calc parameter.
- [#37762][Data packer][DM] datapacker OOM
- [#37646][api-org][DM] ifactory pod terminated causes EdgeHub login failed.
- [#37711][Evaluator][DM] Some TimeMatch formula won't be recorded when recording for a while
- [#37583][api-portal][DPM] Use the mass device devlop, but it met the error of device name is repeated
- [#37553][Evaluator][DM] The total count of math cal parameter is not 86400
- [#37543][Evaluator][DM] The calc parameters of math function will miss the rawdata on 00:00:00
- [#36869][Evaluator][DM] Calc parameter raw data is delayed by 2 mins
- #### Command center
- [#37724][Data source][CC] Use the Ene dashboard switch, select 3 groups but there are only 2 groups be seen
## Version: 2.1.15 (2024/05/24)
### Device Management
#### [Update]
* None
#### [Fix]
* None
### Data Management
#### [Update]
- #### Core
- [Evaluator] improve performance of `getGroupParamSum`, `getGroupAlarmStatus`, `getObjectAlarmStatus` functions
- [Evaluator] TimeMatch on time trigger
- #### Command Center
- [Dashboard function] reportGroupInfo function support daily records
#### [Fix]
- #### Core
- [Evaluator] Calc parameter not showing value after created
- [Archiver] RabbimtMQ queue data accumulation
- [import-export] if parameter data type is descrete and the descriptor is not fill in, dc-import-export-service will crash
- #### Data management
- [Parameter] Cannot scroll to bottom of Custom function help dialog
## Version: 2.1.14 (2024/05/10)
### Device Management
#### [Update]
* Disable the device creation UI of LoRaWAN and WISE-4600 in the HPC evnironments.
#### [Fix]
* [#37463] [DPM] User can't create a new device on QA environment
### Data Management
#### [Update]
- #### Core
- [Import-export] support import with reload data
- #### Data management
- [Portal] Update `Timematch` function desciption
#### [Fix]
- #### Core
- [Import-export] Handle recRate as millisecond, but it should be second.
- [Import-export] Descriptor value = empty braces will cause crash
- [#37413][Evaluator][DM] The trigger of Timematch is not correct by TimeZone
- [Archiver] Wrong handle of maxChangeRatePerMin for `Current` type parameter.
- [Archiver] Didn't sync restored day data to Archiver correctly.
- [Archiver-restore] Wrong handle of maxChangeRatePerMin for `Current` type parameter.
- [Archiver-restore] Didn't restore day data correctly.
- #### Data management
- [#37403][DM] The value of max change /min will be change from 999999999 to 100 when submit
- #### Command center
- [Datasource] Cannot use `Table` format to display discrete parameter's descriptor.
## Version: 2.1.13 (2024/04/26)
### Device Management
#### [Update]
* Batch create device
* Copy the device description to other languages(Traditional Chinese, Simplified Chinesel, Japanese) in addition to English.
#### [Fix]
* None
### Data Management
#### [Update]
- N/A
#### [Fix]
- #### Core
- [#37389][Evaluator][DM] TotalObject won't be trigger when set to check the value of parameter
- [#37290][Evaluator][DM] calc parameter of plugin won't record by every minute
- [#37284][Evaluator][DM] The vaule of TimeObject(-1) won't be changed when the amoumt of object is changed
- [#37201][Evaluator][DM] It won't calculate when import calc parameters
- [#37056][Evaluator][DM] The value of calc parameter will return to 0 when evaluator restart
- [#36879][Evaluator][DM] TimeMatch formula will be trigger twice
- [#36869][Evaluator][DM] Calc parameter raw data iis delayed by 2 mins
- [#36863][Evaluator][DM] Calc parameter won't be recorded by every minute
- [#36815][Evaluator][DM] The vaule of TotalObject formula won't be changed when add a new object
- [#36814][Evaluator][DM] Timematch formula won't be triggered
- [#36813][Evaluator][DM] The value of calc parameter within device tag is always 18
- [#36812][Evaluator][DM] Calc parameter doesn't get data value on each minutes
- [#36781][Evaluator][DM] Timematch formula of everyyear won't be triggered on the date of 0229
- #### Data management
- [#37328][Import-export][DM] The error message of import is hard to understand
## Version: 2.1.12 (2024/04/12)
### Device Management
#### [Update]
* Auto refresh of the device firmware OTA status
* Include the OTA status of EdgeLink, ADAM, WISE modules
* Add the EdgeLink OTA stage display
* When the EdgeLink OTA is in progress, display 'Downloading' or 'Upgrading' in progress bar
* This feature includes firmware OTA and project file OTA
#### [Fix]
* Others
* [DPM] Fix multi-language does not work in the table header of Batch Create Device
* [#37168] [DPM] Some text typo in 'Device Batch Task' page.
### Data Management
#### [Update]
- #### Core
- [Archiver] Modification to the calculation method for cumulative parameters.
- [Archiver-restore] Modification to the calculation method for cumulative parameters.
- [Evaluator] Performance enhancement (TotalObjects)
- #### User management
- [User management] Move “Device management” scope’s position
- [User management] Freeze scope column
#### [Fix]
- #### Core
- [Worker] worker restart may cause some object's savefreq = 0
- [#37208][DM] The api-portal and api-subscrbe services work abnormally, causing the EdgeHub homepage to be inaccessible.
- [#37169][Notification][DM] The parameter name with colon(:) cannot be parsed in notification message.
- [#37056][Evaluator][DM] The value of calc parameter will return to 0 when evaluator restart
- [#36504][Evaluator][DM] Calc parameter doesn't calculate by every minute
- [#36425][Evaluator][DM] The calc parameter formula "TImematch" won't be triggered
- [#36327][Evaluator][DM] The Math of calc parameter isn't be recorded
- [#36326][Evaluator][DM] The formula of calc parameter isn't be recorded
- [#35892][Archiver-restore][DM] archiver restore service restart (OOM)
- [#37222][api-portal][DM] The expired date will be null when creating a new sub tenant on subscribe
- #### Data Management
- [#37237][Plugin][DM] Calc parameter of Basic Auth method can't get the value
- [#37206][DM] The error message is hard to understand when adding parameters via import and the quota of tenant is full
- [#37017][DM] The error message is not clearly if adding parameters (over subscribed quota) via importing object excel.
- [#36882][DM] The page loading display doesn’t make sense in 2000 parameter object.
- [#36922][DM] The error message is hard to understand when enter a wrong user to do retry deduction
- [#36921][DM] There is no any message when retry deduction is success or fail
- [#36685][DM] Wish it has a scroll bar when setting group permission
## Version: 2.1.11 (2024/03/29)
### Device Management
#### [Update]
* Web UI modification according to UI design
* Device Batch Task list: Remove "Result" field and change "Status" field to "Task result" field
* Modify all text: Change from "Created time" to "Date created"
#### [Fix]
* Others
* [#36953] [DPM] Some text typo in Alarm/Event page
* [#36958] [DPM] Suggest to add 'Reload' radio button in editing constant parameter page
### Data Management
#### [Update]
- #### Core
- [api-portal] role name migration, The only special symbols left are " ", "-", "\_", and the rest of the special symbols will be replaced by "\_"
#### [Fix]
- #### Core
- [#37101][Archiver][DM] The wise-mplus-archiver service pod restarts many times during the performance test of 400,000 parameters loading.
- [#37023][Alarm][DM] The alarm of new created object (bound same device as old object) will be triggered even if the device is offline.
- [#36881][Alarm][DM] Part of parameter alarms are triggered after object excel import.
- #### Data management
- [#37018][DM] The object import button is disable if the quota of parameter is full used.
- [#36809][DM] user role permission of Group, object, and parameter can't set to user
- [#36773][DM] Menu item will disappear when use browser to open 2 pages to login to different tenant
- [#36686][DM] Set the admin permission of Dashboard & menu list, but there is no UI to show
## Version: 2.1.10 (2024/03/15)
### Device Management
#### [Update]
* Security patch
* Update MongoDB library and Node version to fix CVE vulnerability
* Affected Pods: api-dpm, batch-device
#### [Fix]
* None
### Data Management
#### [Update]
- #### Core
- [DBMaster][RESTFul API] Adjust parameter apis to use parameter id as input (replace objId & objParam).
- [Packer] Check memory status before any backup job
#### [Fix]
- #### Core
- [#36881][alarm][DM] Part of parameter alarms are triggered after object excel import.
- [#36871][alarm][DM] Actually 2079 alarm are triggered even if only 2000 parameter meet the alarm rule.
- [#36816][import-export][DM] Event rule setting will not be exported in "isEnable" field in object excel.
- [#36808][api-portal][DM] Error occurred if import same object excel file after exporting.
-
- #### Data management
- [#36936][DM] It can be added parameters (over subscribed quota) via importing object excel.
- [#36873][DM] Cannot export alarm report from dashboard alarm panel.
- [#36320][DM] The Parameter name in Variable library of Notification message is not sorted
- [#36683][DM] The admin permission of Profile management, it will show Not Found at first time to login
- [#36494][DM] It will auto create code list when creating cal parameter woth ";" + space
- [#36265][DM] It will take time (almost 6 seconds) to show the device list at first time when creating a primivite parameter
## Version: 2.1.9 (2024/03/01)
### Device Management
#### [Update]
* Web Page Update
* Add text of minimum firmware version requirement when creating EdgeLink device
#### [Fix]
* Others
* [#36566] [DPM] The AI unit of ADAM device is incorrect in monitor page
### Data Management
#### [Update]
- #### Core
- [Apps] Mongoose update to fix security issue
- [api-portal] Update Mongoose to v8.2.0
- [subscribe service] Update Mongoose to v8.2.0
- [api-devtool] Update Mongoose to v8.2.0
- [datasource backend] Remove Mongoose
- [api-plugin]Remove Mongoose
- [Subscribe service] due day, due day+30days logic change
- due day: disable tenant + email notification
- due day + 30 days: disable tenant / Reclaim allocated quota / email notification
- [Evaluator] Optimize the performance of normal formula calculation and `TotalObjects` function
#### [Fix]
- #### Core
- [#36504][Evaluator][DM] Calc parameter doesn't calculate by every minute
- [Restore] Incorrect result in Discrete parameter restore
- #### Data management
- [#36687][DM] Set the viewer permission of Role list, it will show Insufficient permissions to view when access to user management of Root tenant
- [#36680][DM] Can't set the user permission of Group, object, and parameter
- [#36527][DM] It will show "No parameter, yet" when switch 2 object with over 50 parameters
## Version: 2.1.8 (2024/02/07)
### Device Management
#### [Update]
* Add 'Back' button in Activate License Key dialog
#### [Fix]
* Others
* [#36423] [DPM] There is a weird page if switch page from 'Repository' to 'Progress' in Applications.
* [#36395] [DPM] The RS-485 tag value of WISE-4051 in Monitor page is NaN.
### Data Management
#### [Update]
- #### Core
- [Portal] Remove onProxyReq,onProxyRes to improve proxy performance
- [Microservices] upgrade Node.js base image to 20.11.0-slim to prevent OOM issue in K8S 1.25.x
- [Microservices] upgrade Java base image to openjdk:18.0.2 to prevent OOM issue in K8S 1.25.x
- [api-portal] optimize gateways api performance
- [api-portal] when parent group name change, then notify all child group
- [api-portal] Add binded parameter info in tagAdd/tagUpdate mqtt message
#### [Fix]
- #### Core
- [Archiver] Incorrect first value for hour data will cause wrong HIS_AVG of hour data
- [Archiver] Archiver no response in dev site
- [#35892][Archiver][DM] archiver restore service restart (OOM)
- [ArchiverRestore] The waiting time between two restore tasks is too long
- [ArchiverRestore] Incorrect first value for hour data will cause wrong HIS_AVG of hour data
- [api-portal] wrong parameter's kept days for the parameters that is created before version 2.0.22
- [api-portal] PG connection timeout
- [api-portal] User with multiple tenant roles and roles with lower privileges come first (ex. assign `Viewer` first, then add `Admin`) will cause permission denied.
- [dbmaster] The field order for discrete raw data of API response (/data/CalculatedData/query) is wrong (should be "tagvalue", "quality", "datatime")
- [Packer] Env set disable remove hot data but not working (since version 2.1.2)
- [Alarm service][DM] Actually only 1431 alarm are triggered even if 2000 parameter meet the alarm rule.
- [#36482][Subscribe service] [DM] EdgeHub Login site address on email can't be accessed
- #### Data management
- [#35831][DM] Set 2 calc parameters to get the plugin value, there are 2 different data source but the value are the same
- #### User management
- [#34917][UM] Use the Command Center permission, but can't enable the anonymous login
- [#34683][UM] Create a command center permission,but can't access the command center
- #### Command center
- [#36343][dashboard backend] api-org-wise-mplus pod will crash If more than 5,000 data(dashboard panel) are accessed.
- [#36319][CC] Alarm status can't be edited on Alarm panel
## Version: 2.1.7 (2024/01/26)
### Device Management
#### [Update]
* My Device List
* Adjust the width of device list to reduce the display possibility of horizontal scroll bar
* ADAM/WISE IO Configuration
* For Digital Input(DI) and Digital Output(DO) channel settings, add field name and valid value range in error message
* Java related Microservices
* Upgrade to JRE version which supports Cgroups v2
#### [Fix]
* Others
* [#36197] [DPM] The location of button will be shifted if select all in 'Select existing device' dialog in device group
* [#36146] [DPM] Cannot auto select WISE-4000/LAN series when pasting the device info
* ADAM/WISE IO Configuration: Fix Spelling error(Change from 'AI Alarm Drived' to 'AI Alarm Driven')
* [#36394] [DPM] The device 'quality' in tag page is missing in certain situation
### Data Management
#### [Update]
- #### Core
- [Archiver] Handle the special case of HIS_AVG comutation for the parameter with `cumulative` recording type:
- data glitch to 0
- data glitch to 0 right after device online
#### [Fix]
- #### Core
- [Worker] When attempting to stop the app voluntarily, the stop operation fails
- [#36230][Worker] After upgrading AKS version, the device tags info are abnormal.
- [Packer] Didn't send the delete parameter notification to Cleaner, which will result in the parameter's recording rate/hour/day data not being deleted.
- [Cleaner] Delete a parameter will also erase the historical data for other parameters within the same object, including recording rate / hour / day data.
- [#35915][Data restore] The text format data aren't not be recordered actually after stop and restart worker on 1225
- #### Data management
- [#35862][DM] The calculation parameter code data source list is not correct if select the descendant-group.
## Version: 2.1.6 (2024/01/12)
### Device Management
#### [Update]
* My Device
* Display device creator's icon in the user column of device list
* Highlight device row when mouse over device list
* When device's certificate is revoked, disable certificate download and copy credential in Connect tab.
#### [Fix]
* Multi-Languages
* Add translation in the dialog when delete device failed
### Data Management
#### [Update]
- #### Core
- [backend] Update DC_PORTAL_URL env to service name to improve API performance.
#### [Fix]
- #### Core
- [Archiver] The starting value and ending value within the calculation interval are not correctly judged, resulting in errors in the calculation of the cumulative parameter.
- [Cleaner] Cannot do the correct reading of total system memory, may cause OOM.
- #### Data management
- [#35894][DPM] The number of parameters should be the same with settings
- #### Command center
- [#35893][CC] Alarm of calculate parameter won't be triggered at first time.
- [#35890][CC] Data on the graph panel isn't correct
## Version: 2.1.5 (2023/12/29)
### Device Management
#### [Update]
* Batch Create Device
* Auto refresh batch task result every 10 seconds
#### [Fix]
* Management Portal
* Fix that user's role can not be updated
* Others
* [#35859] [DPM] The license quota percentage should be dobule format
* [#35830] [DPM] Confirm button of SSD Recovery shouldn't be enable when user doesn't enter any command
### Data Management
#### [Update]
- #### Core
- [DB] Remove dummy collection (d_min)
- [api-portal] support `upsertParameters` and `upsertMachines` to improve the performance of import-export.
- [alarm-service] Optimize the retrieval of the 'monthOccur' field in the rt/his API
- [import-export] support upsert object and parameter
- [import-export] continue import even import device failed
- #### Data management
- [Portal] UI adjustment for parameters with discrete data type
- [Portal] Limit the imported file size to 5MB
#### [Fix]
- #### Data management
- [Plugin] The successful return status was not displayed when changing the plugin's input back to the correct one.
- #### User management
- [Group user] While creating a new sub-group, it didn't automatically add users and inherit their permissions from ancestor groups.
## Version: 2.1.4 (2023/12/14)
### Device Management
#### [New]
* Add Device License Quota
* Add device license quota display in left menu
* Add input of license key activation in left menu
#### [Update]
* Batch Create Device
* Add retry feature: user could retry to create failed devices in the batch task UI.
* New API: support JSON format of batch device information
* Create Device API
* When calling create device API, API will auto append account id if account id is not present.
* When calling create device API to create SCADA, API will auto create device credential(ex: SAS token in Azure environment) and Node Id if these fields are not present.
* Copy Device Credential
* Add a checksum field to the clipboard JSON when the user clicks copy device credential.
* Management Portal
* Add system log query
#### [Fix]
* iBMC
* [#35294] [DPM] The OK button of iBMC function doesn't have the same name
* [#35317] [DPM] Some iBMC function are't translate to Mandarin
* [#35301] [DPM] The iBMC list name are not on the same format
* [#35399] [DPM] iBMC Functions buttons will be not clickable for a while in certain situation
* [#35243] [DPM] The boot order is not the same with the BIOS list
* Others
* [#35229] [DPM] The last event log is missing when device is offline
* [#34644] [DPM] Hope device batch task can have a retry function
* [#35362] [DPM] Search device condition will show again when click the next button on the below
### Data Management
#### [New]
- #### Core
- [APIs] Integrate iFactory services to provide following data APIs
- lastValue
- lastBadValue
- valuesInRange
- limitToNthValues
- downSampledInRange
- badValuesInRange
- calculatedValue
- [Parameter] Calculation parameter supports `String` data type
- [Parameter] Calculation parameter supports using parameter with `String` data type as code data source while configuring `Plugins` as calculation formula.
- #### Data management
- [Portal] Activate license key functionality
- [Portal] Redeem additional license keys functionality
- [Data connector][Pivot environment only] Support `iFactoryWorks` connector type
- [Data connector][Pivot environment only] Remove the following connector types in new environment. (Current environments still have backward compatible with these types)
- `Edgelink-WebAccessMQTT`
- `SCADA-WebAccessMQTT`
- `iFactory Connector`
-
#### [Update]
- #### Core
- [DB] drop useless min collections (being modified in v2.1.3)
- [api-portal] login add 4 error status (Disabled, Inactive, SSO_Login_DISABLED, Password_expired)
- #### Data management
- [Parameter] Calculation parameter supports setting parameters in descendant groups as code data source.
- [Alarm group] Support to select parameters in descendant groups
- [Forwarding] Support to select parameters in descendant groups as datasource
- [Parameter] SpanHi / SpanLo limitation
- Max length = 17
- Max value of SpanHi / SpanLo = 9,000,000,000,000,000
- Min value of SpanHi / SpanLo = -9,000,000,000,000,000
- SpanHi > SpanLo
- #### User management
- [Group user] While creating a new sub-group, it will automatically add users and inherit their permissions from ancestor groups.
- #### Command Center
- [Alarm panel] add alarm's `duration` field
#### [Fix]
- #### Core
- [#35372][Data archiver] Calculation error while parameter changing its source tag binding.
- [Data archiver] Unnecessary restore notify in the case of data in offline status back to online status.
- [#35328][api-portal] Can't get the tag item of general PC when create a new object
- [#35293][Worker] Data worker doesn't work unexpectedly.
- [#35230][Evaluator] It will pop up error message when create a calc parameter with math function
- [#35213][Notification] The notification function doesn't work if triggering 2000 alarm again.
- [#35167][Notification] Some typos in notification message.
- [#35159][Evaluator] TimeMatch formula of "everyyear" won't be recorded on some month of end
- [#34126][Worker] The list of tags are't correct when adding object from device
- [#34054][General] The name and icon of Data management in version page is not correct.
- #### Data management
- [#35561][DM] User location requests don't seem to work in the Activation Information page.
- [#35392][DM] Plugin list can be sorted by name
- [#35391][DM] calc formula can be sorted by name
- [#35173][DM] It should pop up warning message when remove alarm user group
- [#35172][DM] Parameter that create from profile couldn't be selected
- [#35171][DM] Send test message ambiguous.
- [#35170][DM] It will show warning when disable the channel setting of email
- [#35169][DM] The screen will become white when create object with import from device
- [#35168][DM] The search result is not correct in Event&actions Channel settings page.
- [#34481][DM] The recording rate of constant string should be 60 or 0 but not 1
- [#33603][DM/DPM] Operability test for the dialog component
- #### User management
- [#33806][UM] Some behavior in DM is incorrect if the tenant user is Viewer and sub group is Viewer.
- #### Command Center
- [Datasource] Transformation function error while source value is negative
- [#34326][UM] Tenant/Group role is Viewer but can operate dashboard panel (Ack/Report alarm)
## Version: 2.1.3 (2023/11/10)
### Device Management
#### [Update]
* General-PC module name changes to Computer
* Module name of General-PC changes to Computer. This naming change doest not affect any device feature.
* iBMC
* If user changes device boot sequence, system will append selected boot item automatically in the comment
* Device OTA syncs with online status
* In My Device, the button of Firmware OTA(FOTA) and Configuration OTA(COTA) will be disabled when the device is offline
#### [Fix]
* Device Group
* If there are multiple pages, list all child groups in the same parent group
* Others
* [#35047] [DPM] The device group name could be longer for user to key-in
### Data Management
#### [New]
- #### Core
- [DB] MongoDB collection name modificaiton of recording-rate related collections
- Create a new collection every day to store new recording-rate data
- delete old recording-rate data by drop collection to improve DB performance
- remove unnecessary index
- #### Data management
- [UI] Display parameter's quota and usage
- #### User management
- [UI][Pivot environment only] Display user's quota and usage while integrating quota information with SI Console
#### [Update]
- #### Core
- [api-portal] thresholdRules id will not be changed after updating the parameter alarm rules
- [api-portal] support Redis publish of ifp-rule-engine.Event.[id] and ifp-rule-engine.Rule.[id] message
- #### Data management
- [Portal] Update pop-up message box of successful actions for the following pages:
- Profile management
- Command center - Dashboard
- Command center - Menu
- [Portal] Update pop-up error message with detail information
- Group
- Object
- Parameter
- Plugin
- #### Command center
- [Dashboard] Only the user with `WISE-IoTSuite/Dashboard - Value and alarm` permission of this Tenant can operate ACK action on Ene alarm panel
- [Dashboard] Support filter of HIS alarm data on Ene alarm panel
- [Dashboard] Remove `alarm occurrence` as the filter on Ene alarm panel
#### [Fix]
- #### Core
- [Data worker] Memory leak issue of Redis data buffer
## Version: 2.1.2 (2023/10/27)
### Device Management
#### [New]
* Add new iBMC features
* New features:
* Get/Set device boot sequence
* BIOS(Port 80) status
* Apacer SSD recovery
* Cool down time between iBMC commands:
* New features: 2 minutes
* Original features(Turn on, Turn off, Force Shutdown, Reset): 1 minute
* These new features are supported from iBMC firmware: A1.01 B18 beta version
#### [Update]
* ADAM module name
* Change from ADAM-6018 to ADAM-6018P
* Change from ADAM-6024 to ADAM-6024-D
#### [Fix]
* Others
* [#34942] [DPM] The formula page of calculation parameter doesn't translate to mandarin
### Data Management
#### [New]
- #### Data management
- [Portal] New UI design for `Alarm & event` setting in each group
#### [Update]
- #### Core
- [api-portal] Support checking the Quota of SI Console in the EdgeHub environment.
- Manually added tenants: Expiration in 3 months.
- Tenants added via SI Console: Expiration based on SI Console subscription.
- [api-portal] After disabling a user and then re-enabling the user, the user's permissions within groups remain unchanged.
- [api-portal] Add new edition env: `azure-aks-customer` with new data retention policy for customer
- [Alarm] Only needs to subscribe redis for the tags from ifp-data-hub
- #### Data management
- [Portal] Update pop-up message box of successful actions for the following pages:
- Group
- Object/Parameter
- Event & actions
- Data archiving
- Plugin
- Forwarding
- Alarm settings
- External blob
- Tenant user
- Group user
#### [Fix]
- #### Core
- [#33577][Data worker] The EdgeLink device MQTT heartbeat time isn't work
- [#34126][Data worker] The list of tags are't correct when adding object from device
- [Data worker] Bad format of array tag data
- [Alarm] check alarm code alarm with array tag failed
- [Alarm] RT alarm pagination and sort incorrectly
- [#35013][DPM] The event log of device isn't sorted by event time
- [#35034][Evaluator] The calculation parameter value is incorrect with 1s calc frequency
- [Data packer] process hang when deleting blob data failed
- [Data packer] GET api with wrong route may cause pivot-api-hub slow down
-
- #### Data management
- [#34919][DM] There is no Mail/Wechat notification if alarm is triggered.
- [#34613][DM] The alarm notification message received is 233 not the upper limit of SMTP and LINE.
- [#35003][DM] It will pop up a error msg when try to send a test email
- [#34139][DM] The setting of secrect key should shown as "******"
- #### User management
- [#34930][UM] "UserManagementOnly" role cannot access and manage the group permission page in User Management.
- [#34918][UM] Dashboard list can't be shown when use command center permission
- [#34912][UM] Use the permission of command cemter, the group list doesn't be listed
- [#ww][UM] In-Outbound can be set on Role setting
- #### Command center
- [#34939][CC] The language of switch graph/ alarm panel will not change immediately untill click the edit setting on below
## Version: 2.1.1 (2023/10/12)
### Device Management
#### [Update]
* Web Page Update
* Modify header style according to UI design
* Device Management Portal
* To improve network security, use cookie in JWT format to store user information
* X.509
* Add the capability to run certification program in WISE-PaaS platform
#### [Fix]
* Web Page
* [#34906] [DPM] The style of header menu are not the same on DM and DPM
* [#32333] [UM] DPM should not show User Management item in header dropdown menu
* [#34928] [DPM] Use csv template to import device will show fail
* X.509
* [#34916] [DPM] Edgelink device can't connect to EdgeHub due to Cert Revoke API error
* [#34882] [DPM] Revoke cert regeneration task will not be executed if expired cert regeneration task is executed
* Others
* [#34940] [DPM] Platform agent login error due to GraphQL API is missing
* [#31212] [DPM] When IO Configurations in ADAM/WISE are changed, cloud sends only modified MQTT to device
* [#34941] [DPM] Formula of calcation parameter will be clear when editing
### Data Management
#### [Update]
- #### Core
- [api-portal] Limit single client login for a user account (This feature is disabled by default).
- [api-portal] API update
- (Add) ApiInfo.anyUsernameAuthEnable
- [Data Packer] Federate APIs to federation server after all DB connections are ready.
#### [Fix]
- #### Core
- [Data Packer] Startup incompletly while DBMaster not ready
- [Data Archiver] Wrong calculation for the recording rate data of cumulative parameter while the data upload frequency greater than recording rate.
- #### Data Management
- [Portal] The search for the object parameter list did not yield the correct page numbers.
- [#34196][DM] Plug in will continue to send even the related calculation parameter is deleted
- #### Command Center
- [#34905][CC] Alarm panel doesn't show anything
---
###### tags: `Documentation`