From 8bb08ebaca68badaf9e96a42a74e287ca28db926 Mon Sep 17 00:00:00 2001 From: Artem Dzhereleiko Date: Mon, 2 Dec 2024 12:25:19 +0200 Subject: [PATCH] UI: Refactoring SCADA symbols --- .../scada_symbols/bottom-flow-meter.svg | 19 +- .../system/scada_symbols/centrifugal-pump.svg | 19 +- .../system/scada_symbols/control-panel-hp.svg | 20 +- .../system/scada_symbols/cylindrical-tank.svg | 35 +++- .../dynamic-horizontal-scale-hp.svg | 97 +++------- .../dynamic-vertical-scale-hp.svg | 97 +++------- .../system/scada_symbols/elevated-tank.svg | 35 +++- .../json/system/scada_symbols/filter-hp.svg | 157 +++++++-------- .../system/scada_symbols/heat-pump-hp.svg | 171 +++++++++-------- .../horizontal-inline-flow-meter.svg | 19 +- .../scada_symbols/horizontal-tank-hp.svg | 166 ++++++++-------- .../system/scada_symbols/horizontal-tank.svg | 35 +++- .../scada_symbols/horizontal-valve-hp.svg | 165 ++++++++-------- .../scada_symbols/large-cylindrical-tank.svg | 35 +++- .../large-stand-cylindrical-tank.svg | 35 +++- .../large-stand-vertical-tank.svg | 35 +++- .../scada_symbols/large-vertical-tank.svg | 35 +++- .../left-analog-water-level-meter.svg | 35 +++- .../system/scada_symbols/left-flow-meter.svg | 19 +- .../system/scada_symbols/left-heat-pump.svg | 35 +++- .../system/scada_symbols/left-motor-pump.svg | 19 +- .../json/system/scada_symbols/pool-hp.svg | 166 ++++++++-------- .../json/system/scada_symbols/pump-hp.svg | 146 +++++++------- .../right-analog-water-level-meter.svg | 35 +++- .../system/scada_symbols/right-flow-meter.svg | 19 +- .../system/scada_symbols/right-heat-pump.svg | 35 +++- .../system/scada_symbols/right-motor-pump.svg | 19 +- .../system/scada_symbols/sand-filter-hp.svg | 179 ++++++++++-------- .../scada_symbols/short-vertical-tank-hp.svg | 166 ++++++++-------- .../simple-horizontal-scale-hp.svg | 97 +++------- .../simple-vertical-scale-hp.svg | 97 +++------- .../scada_symbols/small-cylindrical-tank.svg | 35 +++- .../scada_symbols/small-left-motor-pump.svg | 19 +- .../scada_symbols/small-right-motor-pump.svg | 19 +- .../scada_symbols/small-spherical-tank.svg | 35 +++- .../system/scada_symbols/spherical-tank.svg | 35 +++- .../scada_symbols/stand-cylindrical-tank.svg | 35 +++- .../scada_symbols/stand-horizontal-tank.svg | 35 +++- .../stand-vertical-short-tank.svg | 35 +++- .../scada_symbols/stand-vertical-tank.svg | 35 +++- .../system/scada_symbols/top-flow-meter.svg | 19 +- .../vertical-inline-flow-meter.svg | 19 +- .../scada_symbols/vertical-short-tank.svg | 35 +++- .../system/scada_symbols/vertical-tank-hp.svg | 144 +++++++------- .../system/scada_symbols/vertical-tank.svg | 35 +++- .../scada_symbols/vertical-valve-hp.svg | 163 ++++++++-------- .../assets/locale/locale.constant-en_US.json | 7 +- 47 files changed, 1687 insertions(+), 1260 deletions(-) diff --git a/application/src/main/data/json/system/scada_symbols/bottom-flow-meter.svg b/application/src/main/data/json/system/scada_symbols/bottom-flow-meter.svg index 5a886556f8..7d22c90abf 100644 --- a/application/src/main/data/json/system/scada_symbols/bottom-flow-meter.svg +++ b/application/src/main/data/json/system/scada_symbols/bottom-flow-meter.svg @@ -120,7 +120,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -135,6 +135,15 @@ "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", "dataToValueFunction": "/* Should return boolean value */\nreturn data;", @@ -155,7 +164,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -170,6 +179,12 @@ "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", "dataToValueFunction": "/* Should return boolean value */\nreturn data;", diff --git a/application/src/main/data/json/system/scada_symbols/centrifugal-pump.svg b/application/src/main/data/json/system/scada_symbols/centrifugal-pump.svg index 3e2524bd2f..5a67d37e07 100644 --- a/application/src/main/data/json/system/scada_symbols/centrifugal-pump.svg +++ b/application/src/main/data/json/system/scada_symbols/centrifugal-pump.svg @@ -105,7 +105,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -120,6 +120,15 @@ "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", "dataToValueFunction": "/* Should return boolean value */\nreturn data;", @@ -140,7 +149,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -155,6 +164,12 @@ "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", "dataToValueFunction": "/* Should return boolean value */\nreturn data;", diff --git a/application/src/main/data/json/system/scada_symbols/control-panel-hp.svg b/application/src/main/data/json/system/scada_symbols/control-panel-hp.svg index 202ad16eb0..630d0faa28 100644 --- a/application/src/main/data/json/system/scada_symbols/control-panel-hp.svg +++ b/application/src/main/data/json/system/scada_symbols/control-panel-hp.svg @@ -19,7 +19,7 @@ }, { "tag": "offButton", - "stateRenderFunction": "var offButtonChildren = element.children();\nif(ctx.values.value){\n ctx.api.enable(element);\n offButtonChildren[0].fill(ctx.properties.defaultButtonColor);\n} else {\n ctx.api.disable(element);\n offButtonChildren[0].fill(ctx.properties.activeButtonColor);\n}\n\noffButtonChildren[1].stroke(ctx.properties.borderButtonColor);\n\nif (!ctx.properties.label) {\n element.transform({translateY: -60});\n}", + "stateRenderFunction": "var offButtonChildren = element.children();\nif(ctx.values.value){\n ctx.api.enable(element);\n offButtonChildren[0].fill(ctx.properties.defaultButtonColor);\n} else {\n ctx.api.disable(element);\n offButtonChildren[0].fill(ctx.properties.activeButtonColor);\n}\n\noffButtonChildren[1].stroke(ctx.properties.borderButtonColor);\n\nif (!ctx.properties.label) {\n element.transform({translateY: -37});\n}", "actions": { "click": { "actionFunction": "ctx.api.disable(element);\nctx.api.callAction(event, 'offUpdateState', undefined, {\n next: () => {\n ctx.api.setValue('value', false);\n },\n error: () => {\n ctx.api.enable(element);\n } \n});" @@ -33,7 +33,7 @@ }, { "tag": "onButton", - "stateRenderFunction": "var onButtonChildren = element.children();\nif(ctx.values.value){\n ctx.api.disable(element);\n onButtonChildren[0].fill(ctx.properties.activeButtonColor);\n} else {\n ctx.api.enable(element);\n onButtonChildren[0].fill(ctx.properties.defaultButtonColor);\n}\nonButtonChildren[1].stroke(ctx.properties.borderButtonColor);\nif (!ctx.properties.label) {\n element.transform({translateY: -60});\n}", + "stateRenderFunction": "var onButtonChildren = element.children();\nif(ctx.values.value){\n ctx.api.disable(element);\n onButtonChildren[0].fill(ctx.properties.activeButtonColor);\n} else {\n ctx.api.enable(element);\n onButtonChildren[0].fill(ctx.properties.defaultButtonColor);\n}\nonButtonChildren[1].stroke(ctx.properties.borderButtonColor);\nif (!ctx.properties.label) {\n element.transform({translateY: -37});\n}", "actions": { "click": { "actionFunction": "ctx.api.disable(element);\nctx.api.callAction(event, 'onUpdateState', undefined, {\n next: () => {\n ctx.api.setValue('value', true);\n },\n error: () => {\n ctx.api.enable(element);\n } \n});" @@ -320,13 +320,13 @@ } ] }]]> -Heat pump - - - On - - - - Off +Heat pump + + + On + + + + Off \ No newline at end of file diff --git a/application/src/main/data/json/system/scada_symbols/cylindrical-tank.svg b/application/src/main/data/json/system/scada_symbols/cylindrical-tank.svg index fa23dbbe93..513809cca5 100644 --- a/application/src/main/data/json/system/scada_symbols/cylindrical-tank.svg +++ b/application/src/main/data/json/system/scada_symbols/cylindrical-tank.svg @@ -142,7 +142,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -151,16 +151,25 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, @@ -177,7 +186,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -186,16 +195,22 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, diff --git a/application/src/main/data/json/system/scada_symbols/dynamic-horizontal-scale-hp.svg b/application/src/main/data/json/system/scada_symbols/dynamic-horizontal-scale-hp.svg index 00c7fa9ca2..5576c939c4 100644 --- a/application/src/main/data/json/system/scada_symbols/dynamic-horizontal-scale-hp.svg +++ b/application/src/main/data/json/system/scada_symbols/dynamic-horizontal-scale-hp.svg @@ -1,5 +1,4 @@ - - { +<svg xmlns="http://www.w3.org/2000/svg" xmlns:tb="https://thingsboard.io/svg" width="800" height="400" fill="none" version="1.1" viewBox="0 0 800 400"><tb:metadata xmlns=""><![CDATA[{ "title": "HP Dynamic horizontal scale", "description": "Dynamic horizontal scale with current volume value and dynamically configurable warning and critical scale.", "searchTags": [ @@ -19,22 +18,12 @@ }, { "tag": "highCriticalScale", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showHighCriticalScale = ctx.properties.showHighCriticalScale;\nvar highCriticalValue = ctx.values.highCriticalState;\nif (showHighCriticalScale && highCriticalValue !== null) {\n element.show();\n var offset = calculateOffset(highCriticalValue, minValue, maxValue);\n var childrenElement = element.children();\n childrenElement[0].height(653-offset);\n childrenElement[1].height(653-offset-1);\n} else {\n element.hide();\n}", - "actions": null - }, - { - "tag": "highCriticalScaleBackground", - "stateRenderFunction": "var value = ctx.values.value;\nvar showHighCriticalState = ctx.properties.showHighCriticalScale;\nvar highCriticalScale = ctx.values.highCriticalState;\n\nif (showHighCriticalState && value !== null && highCriticalScale !== null) {\n if (value >= highCriticalScale && value <= ctx.properties.maxValue) {\n element.fill(ctx.properties.activeCriticalScaleColor);\n } else {\n element.fill(ctx.properties.defaultCriticalScaleColor)\n }\n}", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n return offset;\n}\n\nvar value = ctx.values.value;\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showHighCriticalScale = ctx.properties.showHighCriticalScale;\nvar highCriticalState = ctx.values.highCriticalState;\nif (showHighCriticalScale && highCriticalState !== null) {\n element.show();\n var offset = calculateOffset(highCriticalState, minValue, maxValue);\n element.width(653-offset);\n} else {\n element.hide();\n}\n\nif (showHighCriticalScale && value !== null && highCriticalState !== null) {\n if (value >= highCriticalState && value <= ctx.properties.maxValue) {\n element.fill(ctx.properties.activeCriticalScaleColor);\n } else {\n element.fill(ctx.properties.defaultCriticalScaleColor)\n }\n}", "actions": null }, { "tag": "highWarningScale", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showHighWarningScale = ctx.properties.showHighWarningScale;\nvar highWarningValue = ctx.values.highWarningState;\nif (showHighWarningScale && highWarningValue !== null) {\n element.show();\n var offset = calculateOffset(highWarningValue, minValue, maxValue);\n var childrenElement = element.children();\n childrenElement[0].height(653-offset);\n childrenElement[1].height(653-offset-1);\n} else {\n element.hide();\n}", - "actions": null - }, - { - "tag": "highWarningScaleBackground", - "stateRenderFunction": "var value = ctx.values.value;\nvar showHighCriticalScale = ctx.properties.showHighCriticalScale;\nvar showHighWarningScale = ctx.properties.showHighWarningScale;\n\nif (showHighWarningScale && value !== null) {\n var highWarningScale = ctx.values.highWarningState;\n var highCriticalScale = ctx.values.highCriticalState;\n if (!showHighCriticalScale) {\n highCriticalScale = ctx.properties.maxValue;\n }\n \n if (highWarningScale !== null && highCriticalScale !== null) {\n if (value < highCriticalScale && value >= highWarningScale) {\n element.fill(ctx.properties.activeWarningScaleColor);\n } else {\n element.fill(ctx.properties.defaultWarningScaleColor);\n }\n }\n}", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar value = ctx.values.value;\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showHighCriticalScale = ctx.properties.showHighCriticalScale;\nvar showHighWarningScale = ctx.properties.showHighWarningScale;\nvar highWarningState = ctx.values.highWarningState;\nvar highCriticalState = ctx.values.highCriticalState;\nif (showHighWarningScale && highWarningState !== null) {\n element.show();\n var offset = calculateOffset(highWarningState, minValue, maxValue);\n element.width(653-offset);\n} else {\n element.hide();\n}\n\nif (showHighWarningScale && value !== null) {\n if (!showHighCriticalScale) {\n highCriticalState = ctx.properties.maxValue;\n }\n \n if (highWarningState !== null && highCriticalState !== null) {\n if (value < highCriticalState && value >= highWarningState) {\n element.fill(ctx.properties.activeWarningScaleColor);\n } else {\n element.fill(ctx.properties.defaultWarningScaleColor);\n }\n }\n}", "actions": null }, { @@ -44,22 +33,12 @@ }, { "tag": "lowCriticalScale", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showLowCriticalScale = ctx.properties.showLowCriticalScale;\nvar lowCriticalValue = ctx.values.lowCriticalState;\n\nif (showLowCriticalScale && lowCriticalValue !== null) {\n element.show();\n var offset = calculateOffset(lowCriticalValue, minValue, maxValue);\n var childrenElement = element.children();\n childrenElement[0].height(offset);\n childrenElement[1].height(offset-1);\n} else {\n element.hide();\n}", - "actions": null - }, - { - "tag": "lowCriticalScaleBackground", - "stateRenderFunction": "var value = ctx.values.value;\nvar showLowCriticalScale = ctx.properties.showLowCriticalScale;\n\nif (showLowCriticalScale && value !== null) {\n var lowCriticalScale = ctx.values.lowCriticalState;\n if (value <= lowCriticalScale && value >= ctx.properties.minValue) {\n element.fill(ctx.properties.activeCriticalScaleColor);\n } else {\n element.fill(ctx.properties.defaultCriticalScaleColor)\n }\n}", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar value = ctx.values.value;\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showLowCriticalScale = ctx.properties.showLowCriticalScale;\nvar lowCriticalValue = ctx.values.lowCriticalState;\n\nif (showLowCriticalScale && lowCriticalValue !== null) {\n element.show();\n var offset = calculateOffset(lowCriticalValue, minValue, maxValue);\n element.width(offset);\n} else {\n element.hide();\n}\n\nif (showLowCriticalScale && value !== null) {\n var lowCriticalScale = ctx.values.lowCriticalState;\n if (value <= lowCriticalScale && value >= ctx.properties.minValue) {\n element.fill(ctx.properties.activeCriticalScaleColor);\n } else {\n element.fill(ctx.properties.defaultCriticalScaleColor)\n }\n}", "actions": null }, { "tag": "lowWarningScale", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showLowWarningScale = ctx.properties.showLowWarningScale;\nvar lowWarningValue = ctx.values.lowWarningState;\nif (showLowWarningScale && lowWarningValue !== null) {\n element.show();\n var offset = calculateOffset(lowWarningValue, minValue, maxValue);\n var childrenElement = element.children();\n childrenElement[0].height(offset);\n childrenElement[1].height(offset-1);\n} else {\n element.hide();\n}", - "actions": null - }, - { - "tag": "lowWarningScaleBackground", - "stateRenderFunction": "var value = ctx.values.value;\nvar showLowWarningScale = ctx.properties.showLowWarningScale;\nvar showLowCriticalScale = ctx.properties.showLowCriticalScale;\n\nif (showLowWarningScale && value !== null) {\n var lowCriticalScale = ctx.values.lowCriticalState;\n var lowWarningScale = ctx.values.lowWarningState;\n if (!showLowCriticalScale) {\n lowCriticalScale = ctx.properties.minValue;\n }\n if (lowCriticalScale !== null && lowWarningScale !== null) {\n if (value > lowCriticalScale && value <= lowWarningScale) {\n element.fill(ctx.properties.activeWarningScaleColor);\n } else {\n element.fill(ctx.properties.defaultWarningScaleColor);\n }\n }\n}", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n return offset;\n}\n\nvar value = ctx.values.value;\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showLowWarningScale = ctx.properties.showLowWarningScale;\nvar showLowCriticalScale = ctx.properties.showLowCriticalScale;\nvar lowWarningState = ctx.values.lowWarningState;\nvar lowCriticalState = ctx.values.lowCriticalState;\nif (showLowWarningScale && lowWarningState !== null) {\n element.show();\n var offset = calculateOffset(lowWarningState, minValue, maxValue);\n element.width(offset);\n} else {\n element.hide();\n}\n\nif (showLowWarningScale && value !== null) {\n if (!showLowCriticalScale) {\n lowCriticalState = ctx.properties.minValue;\n }\n if (lowCriticalState !== null && lowWarningState !== null) {\n if (value > lowCriticalState && value <= lowWarningState) {\n element.fill(ctx.properties.activeWarningScaleColor);\n } else {\n element.fill(ctx.properties.defaultWarningScaleColor);\n }\n }\n}", "actions": null }, { @@ -84,7 +63,7 @@ }, { "tag": "target", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 640;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showTarget = ctx.properties.showTarget;\nvar targetValue = ctx.values.targetValue;\n\nif (showTarget && targetValue !== null) {\n element.show();\n var offset = calculateOffset(targetValue, minValue, maxValue);\n element.transform({translateX: -(640 - (Math.min(Math.max(offset+17, 36), 640)))});\n} else {\n element.hide();\n}\n\n", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showTarget = ctx.properties.showTarget;\nvar targetValue = ctx.values.targetValue;\n\nif (showTarget && targetValue !== null) {\n element.show();\n var offset = calculateOffset(targetValue, minValue, maxValue);\n element.transform({translateX: Math.min(Math.max(offset-17, 0), 619)});\n} else {\n element.hide();\n}", "actions": null }, { @@ -99,7 +78,12 @@ }, { "tag": "value", - "stateRenderFunction": "if (ctx.properties.value !== null) {\n element.show();\n ctx.api.font(element, ctx.properties.valueFont, ctx.properties.valueColor);\n ctx.api.text(element, ctx.api.formatValue(ctx.values.value, ctx.properties.valueDecimals, null, ctx.properties.valueDecimals));\n} else {\n element.hide();\n}", + "stateRenderFunction": "if (ctx.properties.value) {\n element.show();\n ctx.api.font(element, ctx.properties.valueFont, ctx.properties.valueColor);\n ctx.api.text(element, ctx.api.formatValue(ctx.values.value, ctx.properties.valueDecimals, null, ctx.properties.valueDecimals));\n} else {\n element.hide();\n}", + "actions": null + }, + { + "tag": "valueArrowPosition", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar value = ctx.values.value;\n\nif (value !== null) {\n var offset = calculateOffset(value, minValue, maxValue);\n element.transform({translateX: offset});\n}\n", "actions": null }, { @@ -108,8 +92,8 @@ "actions": null }, { - "tag": "valuePosition", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 638;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar value = ctx.values.value;\n\nif (value !== null) {\n var offset = calculateOffset(value, minValue, maxValue);\n element.transform({translateX: -(638 - offset)});\n}\n", + "tag": "valueTextPositon", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar value = ctx.values.value;\n\nif (value !== null) {\n var offset = calculateOffset(value, minValue, maxValue);\n element.transform({translateX: offset});\n}\n", "actions": null } ], @@ -792,39 +776,20 @@ } ] } - Outdoor - °C - - 100 - 0 - - - - 26 - - - - - - - - - - - - - - - - - - - - - - - - - - - +Outdoor°C + 0 + 100 + + + + 26 + + + + + + + + + + \ No newline at end of file diff --git a/application/src/main/data/json/system/scada_symbols/dynamic-vertical-scale-hp.svg b/application/src/main/data/json/system/scada_symbols/dynamic-vertical-scale-hp.svg index fe5fd56564..b7d5e0184b 100644 --- a/application/src/main/data/json/system/scada_symbols/dynamic-vertical-scale-hp.svg +++ b/application/src/main/data/json/system/scada_symbols/dynamic-vertical-scale-hp.svg @@ -1,5 +1,4 @@ - - { +<svg xmlns="http://www.w3.org/2000/svg" xmlns:tb="https://thingsboard.io/svg" width="400" height="800" fill="none" version="1.1" viewBox="0 0 400 800"><tb:metadata xmlns=""><![CDATA[{ "title": "HP Dynamic vertical scale", "description": "Dynamic vertical scale with current volume value and dynamically configurable warning and critical scale.", "searchTags": [ @@ -19,22 +18,12 @@ }, { "tag": "highCriticalScale", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showHighCriticalScale = ctx.properties.showHighCriticalScale;\nvar highCriticalValue = ctx.values.highCriticalState;\nif (showHighCriticalScale && highCriticalValue !== null) {\n element.show();\n var offset = calculateOffset(highCriticalValue, minValue, maxValue);\n var childrenElement = element.children();\n childrenElement[0].height(653-offset);\n childrenElement[1].height(653-offset-1);\n} else {\n element.hide();\n}", - "actions": null - }, - { - "tag": "highCriticalScaleBackground", - "stateRenderFunction": "var value = ctx.values.value;\nvar showHighCriticalState = ctx.properties.showHighCriticalScale;\nvar highCriticalScale = ctx.values.highCriticalState;\n\nif (showHighCriticalState && value !== null && highCriticalScale !== null) {\n if (value >= highCriticalScale && value <= ctx.properties.maxValue) {\n element.fill(ctx.properties.activeCriticalScaleColor);\n } else {\n element.fill(ctx.properties.defaultCriticalScaleColor)\n }\n}", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar value = ctx.values.value;\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showHighCriticalScale = ctx.properties.showHighCriticalScale;\nvar highCriticalState = ctx.values.highCriticalState;\nif (showHighCriticalScale && highCriticalState !== null) {\n element.show();\n var offset = calculateOffset(highCriticalState, minValue, maxValue);\n element.height(653-offset);\n} else {\n element.hide();\n}\n\nif (showHighCriticalScale && value !== null && highCriticalState !== null) {\n if (value >= highCriticalState && value <= ctx.properties.maxValue) {\n element.fill(ctx.properties.activeCriticalScaleColor);\n } else {\n element.fill(ctx.properties.defaultCriticalScaleColor)\n }\n}", "actions": null }, { "tag": "highWarningScale", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showHighWarningScale = ctx.properties.showHighWarningScale;\nvar highWarningValue = ctx.values.highWarningState;\nif (showHighWarningScale && highWarningValue !== null) {\n element.show();\n var offset = calculateOffset(highWarningValue, minValue, maxValue);\n var childrenElement = element.children();\n childrenElement[0].height(653-offset);\n childrenElement[1].height(653-offset-1);\n} else {\n element.hide();\n}", - "actions": null - }, - { - "tag": "highWarningScaleBackground", - "stateRenderFunction": "var value = ctx.values.value;\nvar showHighCriticalScale = ctx.properties.showHighCriticalScale;\nvar showHighWarningScale = ctx.properties.showHighWarningScale;\n\nif (showHighWarningScale && value !== null) {\n var highWarningScale = ctx.values.highWarningState;\n var highCriticalScale = ctx.values.highCriticalState;\n if (!showHighCriticalScale) {\n highCriticalScale = ctx.properties.maxValue;\n }\n \n if (highWarningScale !== null && highCriticalScale !== null) {\n if (value < highCriticalScale && value >= highWarningScale) {\n element.fill(ctx.properties.activeWarningScaleColor);\n } else {\n element.fill(ctx.properties.defaultWarningScaleColor);\n }\n }\n}", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n return offset;\n}\n\nvar value = ctx.values.value;\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showHighCriticalScale = ctx.properties.showHighCriticalScale;\nvar showHighWarningScale = ctx.properties.showHighWarningScale;\nvar highWarningState = ctx.values.highWarningState;\nvar highCriticalState = ctx.values.highCriticalState;\nif (showHighWarningScale && highWarningState !== null) {\n element.show();\n var offset = calculateOffset(highWarningState, minValue, maxValue);\n element.height(653-offset);\n} else {\n element.hide();\n}\nif (showHighWarningScale && value !== null) {\n if (!showHighCriticalScale) {\n highCriticalState = ctx.properties.maxValue;\n }\n if (highWarningState !== null && highCriticalState !== null) {\n if (value < highCriticalState && value >= highWarningState) {\n element.fill(ctx.properties.activeWarningScaleColor);\n } else {\n element.fill(ctx.properties.defaultWarningScaleColor);\n }\n }\n}", "actions": null }, { @@ -44,22 +33,12 @@ }, { "tag": "lowCriticalScale", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showLowCriticalScale = ctx.properties.showLowCriticalScale;\nvar lowCriticalValue = ctx.values.lowCriticalState;\n\nif (showLowCriticalScale && lowCriticalValue !== null) {\n element.show();\n var offset = calculateOffset(lowCriticalValue, minValue, maxValue);\n var childrenElement = element.children();\n childrenElement[0].height(offset);\n childrenElement[1].height(offset-1);\n} else {\n element.hide();\n}", - "actions": null - }, - { - "tag": "lowCriticalScaleBackground", - "stateRenderFunction": "var value = ctx.values.value;\nvar showLowCriticalScale = ctx.properties.showLowCriticalScale;\n\nif (showLowCriticalScale && value !== null) {\n var lowCriticalScale = ctx.values.lowCriticalState;\n if (value <= lowCriticalScale && value >= ctx.properties.minValue) {\n element.fill(ctx.properties.activeCriticalScaleColor);\n } else {\n element.fill(ctx.properties.defaultCriticalScaleColor)\n }\n}", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar value = ctx.values.value;\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showLowCriticalScale = ctx.properties.showLowCriticalScale;\nvar lowCriticalValue = ctx.values.lowCriticalState;\n\nif (showLowCriticalScale && lowCriticalValue !== null) {\n element.show();\n var offset = calculateOffset(lowCriticalValue, minValue, maxValue);\n element.height(offset);\n} else {\n element.hide();\n}\nif (showLowCriticalScale && value !== null) {\n var lowCriticalScale = ctx.values.lowCriticalState;\n if (value <= lowCriticalScale && value >= ctx.properties.minValue) {\n element.fill(ctx.properties.activeCriticalScaleColor);\n } else {\n element.fill(ctx.properties.defaultCriticalScaleColor)\n }\n}", "actions": null }, { "tag": "lowWarningScale", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showLowWarningScale = ctx.properties.showLowWarningScale;\nvar lowWarningValue = ctx.values.lowWarningState;\nif (showLowWarningScale && lowWarningValue !== null) {\n element.show();\n var offset = calculateOffset(lowWarningValue, minValue, maxValue);\n var childrenElement = element.children();\n childrenElement[0].height(offset);\n childrenElement[1].height(offset-1);\n} else {\n element.hide();\n}", - "actions": null - }, - { - "tag": "lowWarningScaleBackground", - "stateRenderFunction": "var value = ctx.values.value;\nvar showLowWarningScale = ctx.properties.showLowWarningScale;\nvar showLowCriticalScale = ctx.properties.showLowCriticalScale;\n\nif (showLowWarningScale && value !== null) {\n var lowCriticalScale = ctx.values.lowCriticalState;\n var lowWarningScale = ctx.values.lowWarningState;\n if (!showLowCriticalScale) {\n lowCriticalScale = ctx.properties.minValue;\n }\n if (lowCriticalScale !== null && lowWarningScale !== null) {\n if (value > lowCriticalScale && value <= lowWarningScale) {\n element.fill(ctx.properties.activeWarningScaleColor);\n } else {\n element.fill(ctx.properties.defaultWarningScaleColor);\n }\n }\n}", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar value = ctx.values.value;\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showLowWarningScale = ctx.properties.showLowWarningScale;\nvar showLowCriticalScale = ctx.properties.showLowCriticalScale;\nvar lowWarningState = ctx.values.lowWarningState;\nvar lowCriticalState = ctx.values.lowCriticalState;\nif (showLowWarningScale && lowWarningState !== null) {\n element.show();\n var offset = calculateOffset(lowWarningState, minValue, maxValue);\n element.height(offset);\n} else {\n element.hide();\n}\nif (showLowWarningScale && value !== null) {\n if (!showLowCriticalScale) {\n lowCriticalState = ctx.properties.minValue;\n }\n if (lowCriticalState !== null && lowWarningState !== null) {\n if (value > lowCriticalState && value <= lowWarningState) {\n element.fill(ctx.properties.activeWarningScaleColor);\n } else {\n element.fill(ctx.properties.defaultWarningScaleColor);\n }\n }\n}", "actions": null }, { @@ -84,7 +63,7 @@ }, { "tag": "target", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showTarget = ctx.properties.showTarget;\nvar targetValue = ctx.values.targetValue;\n\nif (showTarget && targetValue !== null) {\n element.show();\n var offset = calculateOffset(targetValue, minValue, maxValue);\n element.transform({translateY: -(Math.min(Math.max(offset-17, 0), 617))});\n} else {\n element.hide();\n}\n\n", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showTarget = ctx.properties.showTarget;\nvar targetValue = ctx.values.targetValue;\n\nif (showTarget && targetValue !== null) {\n element.show();\n var offset = calculateOffset(targetValue, minValue, maxValue);\n element.transform({translateY: -Math.min(Math.max(offset-17, 0), 619)});\n} else {\n element.hide();\n}", "actions": null }, { @@ -99,7 +78,12 @@ }, { "tag": "value", - "stateRenderFunction": "if (ctx.properties.value !== null) {\n element.show();\n ctx.api.font(element, ctx.properties.valueFont, ctx.properties.valueColor);\n ctx.api.text(element, ctx.api.formatValue(ctx.values.value, ctx.properties.valueDecimals, null, ctx.properties.valueDecimals));\n} else {\n element.hide();\n}", + "stateRenderFunction": "if (ctx.properties.value) {\n element.show();\n ctx.api.font(element, ctx.properties.valueFont, ctx.properties.valueColor);\n ctx.api.text(element, ctx.api.formatValue(ctx.values.value, ctx.properties.valueDecimals, null, ctx.properties.valueDecimals));\n} else {\n element.hide();\n}", + "actions": null + }, + { + "tag": "valueArrowPosition", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar value = ctx.values.value;\n\nif (value !== null) {\n var offset = calculateOffset(value, minValue, maxValue);\n element.transform({translateY: -offset});\n}\n", "actions": null }, { @@ -108,8 +92,8 @@ "actions": null }, { - "tag": "valuePosition", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar value = ctx.values.value;\n\nif (value !== null) {\n var offset = calculateOffset(value, minValue, maxValue);\n element.transform({translateY: -offset});\n}\n", + "tag": "valueTextPositon", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar value = ctx.values.value;\n\nif (value !== null) {\n var offset = calculateOffset(value, minValue, maxValue);\n element.transform({translateY: -offset});\n}\n", "actions": null } ], @@ -792,39 +776,20 @@ } ] } - Outdoor - °C - - - - - - - - - - - - - - - - - - - - - - 100 - 0 - - - - 26 - - - - - - - +Outdoor°C + + + + + + + 100 + 0 + + + + 26 + + + + \ No newline at end of file diff --git a/application/src/main/data/json/system/scada_symbols/elevated-tank.svg b/application/src/main/data/json/system/scada_symbols/elevated-tank.svg index e3731ab979..9db211457e 100644 --- a/application/src/main/data/json/system/scada_symbols/elevated-tank.svg +++ b/application/src/main/data/json/system/scada_symbols/elevated-tank.svg @@ -138,7 +138,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -147,16 +147,25 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, @@ -173,7 +182,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -182,16 +191,22 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, diff --git a/application/src/main/data/json/system/scada_symbols/filter-hp.svg b/application/src/main/data/json/system/scada_symbols/filter-hp.svg index 3bec273373..02328a62ef 100644 --- a/application/src/main/data/json/system/scada_symbols/filter-hp.svg +++ b/application/src/main/data/json/system/scada_symbols/filter-hp.svg @@ -1,5 +1,4 @@ - - { +<svg xmlns="http://www.w3.org/2000/svg" xmlns:tb="https://thingsboard.io/svg" width="200" height="400" fill="none" version="1.1" viewBox="0 0 200 400"><tb:metadata xmlns=""><![CDATA[{ "title": "HP Filter", "description": "Filter", "searchTags": [ @@ -8,11 +7,6 @@ "widgetSizeX": 1, "widgetSizeY": 2, "tags": [ - { - "tag": "background", - "stateRenderFunction": "element.attr({fill: ctx.properties.runningColor});", - "actions": null - }, { "tag": "clickArea", "stateRenderFunction": null, @@ -44,16 +38,16 @@ "behavior": [ { "id": "warning", - "name": "{i18n:scada.symbol.warning-state}", + "name": "{i18n:scada.symbol.warning}", "hint": "{i18n:scada.symbol.warning-state-hint}", - "group": null, + "group": "{i18n:scada.symbol.warning-state}", "type": "value", "valueType": "BOOLEAN", "trueLabel": null, "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -62,33 +56,62 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, + { + "id": "warningClick", + "name": "{i18n:scada.symbol.warning-click}", + "hint": "{i18n:scada.symbol.on-click-hint}", + "group": "{i18n:scada.symbol.warning-state}", + "type": "widgetAction", + "valueType": "BOOLEAN", + "trueLabel": null, + "falseLabel": null, + "stateLabel": null, + "defaultGetValueSettings": null, + "defaultSetValueSettings": null, + "defaultWidgetActionSettings": { + "type": "doNothing", + "targetDashboardStateId": null, + "openRightLayout": false, + "setEntityId": false, + "stateEntityParamName": null + } + }, { "id": "critical", - "name": "{i18n:scada.symbol.critical-state}", + "name": "{i18n:scada.symbol.critical}", "hint": "{i18n:scada.symbol.critical-state-hint}", - "group": null, + "group": "{i18n:scada.symbol.critical-state}", "type": "value", "valueType": "BOOLEAN", "trueLabel": null, "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -97,21 +120,47 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, + { + "id": "criticalClick", + "name": "{i18n:scada.symbol.critical-click}", + "hint": "{i18n:scada.symbol.on-click-hint}", + "group": "{i18n:scada.symbol.critical-state}", + "type": "widgetAction", + "valueType": "BOOLEAN", + "trueLabel": null, + "falseLabel": null, + "stateLabel": null, + "defaultGetValueSettings": null, + "defaultSetValueSettings": null, + "defaultWidgetActionSettings": { + "type": "doNothing", + "targetDashboardStateId": null, + "openRightLayout": false, + "setEntityId": false, + "stateEntityParamName": null + } + }, { "id": "criticalAnimation", "name": "{i18n:scada.symbol.critical-state-animation}", @@ -147,46 +196,6 @@ "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, - { - "id": "warningClick", - "name": "{i18n:scada.symbol.warning-click}", - "hint": "{i18n:scada.symbol.on-click-hint}", - "group": null, - "type": "widgetAction", - "valueType": "BOOLEAN", - "trueLabel": null, - "falseLabel": null, - "stateLabel": null, - "defaultGetValueSettings": null, - "defaultSetValueSettings": null, - "defaultWidgetActionSettings": { - "type": "doNothing", - "targetDashboardStateId": null, - "openRightLayout": false, - "setEntityId": false, - "stateEntityParamName": null - } - }, - { - "id": "criticalClick", - "name": "{i18n:scada.symbol.critical-click}", - "hint": "{i18n:scada.symbol.on-click-hint}", - "group": null, - "type": "widgetAction", - "valueType": "BOOLEAN", - "trueLabel": null, - "falseLabel": null, - "stateLabel": null, - "defaultGetValueSettings": null, - "defaultSetValueSettings": null, - "defaultWidgetActionSettings": { - "type": "doNothing", - "targetDashboardStateId": null, - "openRightLayout": false, - "setEntityId": false, - "stateEntityParamName": null - } - }, { "id": "click", "name": "{i18n:scada.symbol.on-click}", @@ -211,12 +220,12 @@ "properties": [ { "id": "runningColor", - "name": "{i18n:scada.symbol.running-color}", + "name": "{i18n:scada.symbol.colors}", "type": "color", "default": "#FFFFFF", "required": null, - "subLabel": null, - "divider": null, + "subLabel": "{i18n:scada.symbol.running}", + "divider": true, "fieldSuffix": null, "disableOnProperty": null, "rowClass": "", @@ -227,12 +236,12 @@ }, { "id": "warningColor", - "name": "{i18n:scada.symbol.warning-color}", + "name": "{i18n:scada.symbol.colors}", "type": "color", "default": "#FAA405", "required": null, - "subLabel": null, - "divider": null, + "subLabel": "{i18n:scada.symbol.warning}", + "divider": true, "fieldSuffix": null, "disableOnProperty": null, "rowClass": "", @@ -243,11 +252,11 @@ }, { "id": "criticalColor", - "name": "{i18n:scada.symbol.critical-color}", + "name": "{i18n:scada.symbol.colors}", "type": "color", "default": "#D12730", "required": null, - "subLabel": null, + "subLabel": "{i18n:scada.symbol.critical}", "divider": null, "fieldSuffix": null, "disableOnProperty": null, @@ -259,19 +268,15 @@ } ] } - - - - + - - + - + \ No newline at end of file diff --git a/application/src/main/data/json/system/scada_symbols/heat-pump-hp.svg b/application/src/main/data/json/system/scada_symbols/heat-pump-hp.svg index 1c663c9b29..0d552c8358 100644 --- a/application/src/main/data/json/system/scada_symbols/heat-pump-hp.svg +++ b/application/src/main/data/json/system/scada_symbols/heat-pump-hp.svg @@ -1,9 +1,9 @@ - - { +<svg xmlns="http://www.w3.org/2000/svg" xmlns:tb="https://thingsboard.io/svg" width="800" height="600" fill="none" version="1.1" viewBox="0 0 800 600"><tb:metadata xmlns=""><![CDATA[{ "title": "HP Heat pump", "description": "Heat pump", "searchTags": [ - "pump" + "pump", + "high performance" ], "widgetSizeX": 4, "widgetSizeY": 3, @@ -181,16 +181,16 @@ }, { "id": "warning", - "name": "{i18n:scada.symbol.warning-state}", + "name": "{i18n:scada.symbol.warning}", "hint": "{i18n:scada.symbol.warning-state-hint}", - "group": null, + "group": "{i18n:scada.symbol.warning-state}", "type": "value", "valueType": "BOOLEAN", "trueLabel": null, "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -199,33 +199,62 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, + { + "id": "warningClick", + "name": "{i18n:scada.symbol.warning-click}", + "hint": "{i18n:scada.symbol.on-click-hint}", + "group": "{i18n:scada.symbol.warning-state}", + "type": "widgetAction", + "valueType": "BOOLEAN", + "trueLabel": null, + "falseLabel": null, + "stateLabel": null, + "defaultGetValueSettings": null, + "defaultSetValueSettings": null, + "defaultWidgetActionSettings": { + "type": "doNothing", + "targetDashboardStateId": null, + "openRightLayout": false, + "setEntityId": false, + "stateEntityParamName": null + } + }, { "id": "critical", - "name": "{i18n:scada.symbol.critical-state}", + "name": "{i18n:scada.symbol.critical}", "hint": "{i18n:scada.symbol.critical-state-hint}", - "group": null, + "group": "{i18n:scada.symbol.critical-state}", "type": "value", "valueType": "BOOLEAN", "trueLabel": null, "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -234,21 +263,47 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, + { + "id": "criticalClick", + "name": "{i18n:scada.symbol.critical-click}", + "hint": "{i18n:scada.symbol.on-click-hint}", + "group": "{i18n:scada.symbol.critical-state}", + "type": "widgetAction", + "valueType": "BOOLEAN", + "trueLabel": null, + "falseLabel": null, + "stateLabel": null, + "defaultGetValueSettings": null, + "defaultSetValueSettings": null, + "defaultWidgetActionSettings": { + "type": "doNothing", + "targetDashboardStateId": null, + "openRightLayout": false, + "setEntityId": false, + "stateEntityParamName": null + } + }, { "id": "criticalAnimation", "name": "{i18n:scada.symbol.critical-state-animation}", @@ -284,46 +339,6 @@ "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, - { - "id": "warningClick", - "name": "{i18n:scada.symbol.warning-click}", - "hint": "{i18n:scada.symbol.on-click-hint}", - "group": null, - "type": "widgetAction", - "valueType": "BOOLEAN", - "trueLabel": null, - "falseLabel": null, - "stateLabel": null, - "defaultGetValueSettings": null, - "defaultSetValueSettings": null, - "defaultWidgetActionSettings": { - "type": "doNothing", - "targetDashboardStateId": null, - "openRightLayout": false, - "setEntityId": false, - "stateEntityParamName": null - } - }, - { - "id": "criticalClick", - "name": "{i18n:scada.symbol.critical-click}", - "hint": "{i18n:scada.symbol.on-click-hint}", - "group": null, - "type": "widgetAction", - "valueType": "BOOLEAN", - "trueLabel": null, - "falseLabel": null, - "stateLabel": null, - "defaultGetValueSettings": null, - "defaultSetValueSettings": null, - "defaultWidgetActionSettings": { - "type": "doNothing", - "targetDashboardStateId": null, - "openRightLayout": false, - "setEntityId": false, - "stateEntityParamName": null - } - }, { "id": "click", "name": "{i18n:scada.symbol.on-click}", @@ -348,12 +363,12 @@ "properties": [ { "id": "runningColor", - "name": "{i18n:scada.symbol.running-color}", + "name": "{i18n:scada.symbol.colors}", "type": "color", "default": "#FFFFFF", "required": null, - "subLabel": null, - "divider": null, + "subLabel": "{i18n:scada.symbol.running}", + "divider": true, "fieldSuffix": null, "disableOnProperty": null, "rowClass": "", @@ -364,11 +379,11 @@ }, { "id": "stoppedColor", - "name": "{i18n:scada.symbol.stopped-color}", + "name": "{i18n:scada.symbol.colors}", "type": "color", "default": "#666666", "required": null, - "subLabel": null, + "subLabel": "{i18n:scada.symbol.stopped}", "divider": null, "fieldSuffix": null, "disableOnProperty": null, @@ -380,12 +395,12 @@ }, { "id": "warningColor", - "name": "{i18n:scada.symbol.warning-color}", + "name": "{i18n:scada.symbol.alarm-colors}", "type": "color", "default": "#FAA405", "required": null, - "subLabel": null, - "divider": null, + "subLabel": "{i18n:scada.symbol.warning}", + "divider": true, "fieldSuffix": null, "disableOnProperty": null, "rowClass": "", @@ -396,11 +411,11 @@ }, { "id": "criticalColor", - "name": "{i18n:scada.symbol.critical-color}", + "name": "{i18n:scada.symbol.alarm-colors}", "type": "color", "default": "#D12730", "required": null, - "subLabel": null, + "subLabel": "{i18n:scada.symbol.critical}", "divider": null, "fieldSuffix": null, "disableOnProperty": null, @@ -516,7 +531,7 @@ "id": "units", "name": "{i18n:scada.symbol.value-units}", "type": "units", - "default": "&#176;C", + "default": "°C", "required": null, "subLabel": null, "divider": null, @@ -546,7 +561,7 @@ } ] } - + @@ -572,33 +587,27 @@ - - - + - - + - - + - - + - - + - + \ No newline at end of file diff --git a/application/src/main/data/json/system/scada_symbols/horizontal-inline-flow-meter.svg b/application/src/main/data/json/system/scada_symbols/horizontal-inline-flow-meter.svg index 3e13dc1126..4ad766764a 100644 --- a/application/src/main/data/json/system/scada_symbols/horizontal-inline-flow-meter.svg +++ b/application/src/main/data/json/system/scada_symbols/horizontal-inline-flow-meter.svg @@ -120,7 +120,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -135,6 +135,15 @@ "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", "dataToValueFunction": "/* Should return boolean value */\nreturn data;", @@ -155,7 +164,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -170,6 +179,12 @@ "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", "dataToValueFunction": "/* Should return boolean value */\nreturn data;", diff --git a/application/src/main/data/json/system/scada_symbols/horizontal-tank-hp.svg b/application/src/main/data/json/system/scada_symbols/horizontal-tank-hp.svg index 232159f2a5..9ee3ebda66 100644 --- a/application/src/main/data/json/system/scada_symbols/horizontal-tank-hp.svg +++ b/application/src/main/data/json/system/scada_symbols/horizontal-tank-hp.svg @@ -1,9 +1,9 @@ - - { +<svg xmlns="http://www.w3.org/2000/svg" xmlns:tb="https://thingsboard.io/svg" width="1e3" height="600" fill="none" version="1.1" viewBox="0 0 1e3 600"><tb:metadata xmlns=""><![CDATA[{ "title": "HP Horizontal tank", - "description": "Horizontal tank", + "description": "Horizontal tank with level visualizations.", "searchTags": [ - "horizontal tank" + "horizontal tank", + "high performance" ], "widgetSizeX": 5, "widgetSizeY": 3, @@ -122,16 +122,16 @@ }, { "id": "warning", - "name": "{i18n:scada.symbol.warning-state}", + "name": "{i18n:scada.symbol.warning}", "hint": "{i18n:scada.symbol.warning-state-hint}", - "group": null, + "group": "{i18n:scada.symbol.warning-state}", "type": "value", "valueType": "BOOLEAN", "trueLabel": null, "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -140,33 +140,62 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, + { + "id": "warningClick", + "name": "{i18n:scada.symbol.warning-click}", + "hint": "{i18n:scada.symbol.on-click-hint}", + "group": "{i18n:scada.symbol.warning-state}", + "type": "widgetAction", + "valueType": "BOOLEAN", + "trueLabel": null, + "falseLabel": null, + "stateLabel": null, + "defaultGetValueSettings": null, + "defaultSetValueSettings": null, + "defaultWidgetActionSettings": { + "type": "doNothing", + "targetDashboardStateId": null, + "openRightLayout": false, + "setEntityId": false, + "stateEntityParamName": null + } + }, { "id": "critical", - "name": "{i18n:scada.symbol.critical-state}", + "name": "{i18n:scada.symbol.critical}", "hint": "{i18n:scada.symbol.critical-state-hint}", - "group": null, + "group": "{i18n:scada.symbol.critical-state}", "type": "value", "valueType": "BOOLEAN", "trueLabel": null, "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -175,21 +204,47 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, + { + "id": "criticalClick", + "name": "{i18n:scada.symbol.critical-click}", + "hint": "{i18n:scada.symbol.on-click-hint}", + "group": "{i18n:scada.symbol.critical-state}", + "type": "widgetAction", + "valueType": "BOOLEAN", + "trueLabel": null, + "falseLabel": null, + "stateLabel": null, + "defaultGetValueSettings": null, + "defaultSetValueSettings": null, + "defaultWidgetActionSettings": { + "type": "doNothing", + "targetDashboardStateId": null, + "openRightLayout": false, + "setEntityId": false, + "stateEntityParamName": null + } + }, { "id": "criticalAnimation", "name": "{i18n:scada.symbol.critical-state-animation}", @@ -225,46 +280,6 @@ "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, - { - "id": "warningClick", - "name": "{i18n:scada.symbol.warning-click}", - "hint": "{i18n:scada.symbol.on-click-hint}", - "group": null, - "type": "widgetAction", - "valueType": "BOOLEAN", - "trueLabel": null, - "falseLabel": null, - "stateLabel": null, - "defaultGetValueSettings": null, - "defaultSetValueSettings": null, - "defaultWidgetActionSettings": { - "type": "doNothing", - "targetDashboardStateId": null, - "openRightLayout": false, - "setEntityId": false, - "stateEntityParamName": null - } - }, - { - "id": "criticalClick", - "name": "{i18n:scada.symbol.critical-click}", - "hint": "{i18n:scada.symbol.on-click-hint}", - "group": null, - "type": "widgetAction", - "valueType": "BOOLEAN", - "trueLabel": null, - "falseLabel": null, - "stateLabel": null, - "defaultGetValueSettings": null, - "defaultSetValueSettings": null, - "defaultWidgetActionSettings": { - "type": "doNothing", - "targetDashboardStateId": null, - "openRightLayout": false, - "setEntityId": false, - "stateEntityParamName": null - } - }, { "id": "click", "name": "{i18n:scada.symbol.on-click}", @@ -342,7 +357,7 @@ "default": 10, "required": null, "subLabel": "{i18n:scada.symbol.intervals}", - "divider": true, + "divider": false, "fieldSuffix": null, "disableOnProperty": "scale", "rowClass": "", @@ -375,7 +390,7 @@ }, { "id": "majorColor", - "name": "{i18n:scada.symbol.major-ticks-color}", + "name": "{i18n:scada.symbol.major-ticks}", "type": "color", "default": "#00000061", "required": null, @@ -407,7 +422,7 @@ }, { "id": "minorColor", - "name": "{i18n:scada.symbol.minor-ticks-color}", + "name": "{i18n:scada.symbol.minor-ticks}", "type": "color", "default": "#0000001F", "required": null, @@ -423,12 +438,12 @@ }, { "id": "warningColor", - "name": "{i18n:scada.symbol.warning-color}", + "name": "{i18n:scada.symbol.alarm-colors}", "type": "color", "default": "#FAA405", "required": null, - "subLabel": null, - "divider": null, + "subLabel": "{i18n:scada.symbol.warning}", + "divider": true, "fieldSuffix": null, "disableOnProperty": null, "rowClass": "", @@ -439,11 +454,11 @@ }, { "id": "criticalColor", - "name": "{i18n:scada.symbol.critical-color}", + "name": "{i18n:scada.symbol.alarm-colors}", "type": "color", "default": "#D12730", "required": null, - "subLabel": null, + "subLabel": "{i18n:scada.symbol.critical}", "divider": null, "fieldSuffix": null, "disableOnProperty": null, @@ -455,16 +470,12 @@ } ] } - - - + - - + - - + @@ -527,18 +538,15 @@ - - - + - - + - + \ No newline at end of file diff --git a/application/src/main/data/json/system/scada_symbols/horizontal-tank.svg b/application/src/main/data/json/system/scada_symbols/horizontal-tank.svg index 6452715db4..7875b5dde0 100644 --- a/application/src/main/data/json/system/scada_symbols/horizontal-tank.svg +++ b/application/src/main/data/json/system/scada_symbols/horizontal-tank.svg @@ -142,7 +142,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -151,16 +151,25 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, @@ -177,7 +186,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -186,16 +195,22 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, diff --git a/application/src/main/data/json/system/scada_symbols/horizontal-valve-hp.svg b/application/src/main/data/json/system/scada_symbols/horizontal-valve-hp.svg index c032a4b957..2e542cecae 100644 --- a/application/src/main/data/json/system/scada_symbols/horizontal-valve-hp.svg +++ b/application/src/main/data/json/system/scada_symbols/horizontal-valve-hp.svg @@ -1,9 +1,9 @@ - - { +<svg xmlns="http://www.w3.org/2000/svg" xmlns:tb="https://thingsboard.io/svg" width="200" height="200" fill="none" version="1.1" viewBox="0 0 200 200"><tb:metadata xmlns=""><![CDATA[{ "title": "HP Horizontal valve", "description": "Horizontal valve with various states.", "searchTags": [ - "valve" + "valve", + "high performance" ], "widgetSizeX": 1, "widgetSizeY": 1, @@ -147,16 +147,16 @@ }, { "id": "warning", - "name": "{i18n:scada.symbol.warning-state}", + "name": "{i18n:scada.symbol.warning}", "hint": "{i18n:scada.symbol.warning-state-hint}", - "group": null, + "group": "{i18n:scada.symbol.warning-state}", "type": "value", "valueType": "BOOLEAN", "trueLabel": null, "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -165,33 +165,62 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, + { + "id": "warningClick", + "name": "{i18n:scada.symbol.warning-click}", + "hint": "{i18n:scada.symbol.on-click-hint}", + "group": "{i18n:scada.symbol.warning-state}", + "type": "widgetAction", + "valueType": "BOOLEAN", + "trueLabel": null, + "falseLabel": null, + "stateLabel": null, + "defaultGetValueSettings": null, + "defaultSetValueSettings": null, + "defaultWidgetActionSettings": { + "type": "doNothing", + "targetDashboardStateId": null, + "openRightLayout": false, + "setEntityId": false, + "stateEntityParamName": null + } + }, { "id": "critical", - "name": "{i18n:scada.symbol.critical-state}", + "name": "{i18n:scada.symbol.critical}", "hint": "{i18n:scada.symbol.critical-state-hint}", - "group": null, + "group": "{i18n:scada.symbol.critical-state}", "type": "value", "valueType": "BOOLEAN", "trueLabel": null, "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -200,21 +229,47 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, + { + "id": "criticalClick", + "name": "{i18n:scada.symbol.critical-click}", + "hint": "{i18n:scada.symbol.on-click-hint}", + "group": "{i18n:scada.symbol.critical-state}", + "type": "widgetAction", + "valueType": "BOOLEAN", + "trueLabel": null, + "falseLabel": null, + "stateLabel": null, + "defaultGetValueSettings": null, + "defaultSetValueSettings": null, + "defaultWidgetActionSettings": { + "type": "doNothing", + "targetDashboardStateId": null, + "openRightLayout": false, + "setEntityId": false, + "stateEntityParamName": null + } + }, { "id": "criticalAnimation", "name": "{i18n:scada.symbol.critical-state-animation}", @@ -249,57 +304,17 @@ }, "defaultSetValueSettings": null, "defaultWidgetActionSettings": null - }, - { - "id": "warningClick", - "name": "{i18n:scada.symbol.warning-click}", - "hint": "{i18n:scada.symbol.on-click-hint}", - "group": null, - "type": "widgetAction", - "valueType": "BOOLEAN", - "trueLabel": null, - "falseLabel": null, - "stateLabel": null, - "defaultGetValueSettings": null, - "defaultSetValueSettings": null, - "defaultWidgetActionSettings": { - "type": "doNothing", - "targetDashboardStateId": null, - "openRightLayout": false, - "setEntityId": false, - "stateEntityParamName": null - } - }, - { - "id": "criticalClick", - "name": "{i18n:scada.symbol.critical-click}", - "hint": "{i18n:scada.symbol.on-click-hint}", - "group": null, - "type": "widgetAction", - "valueType": "BOOLEAN", - "trueLabel": null, - "falseLabel": null, - "stateLabel": null, - "defaultGetValueSettings": null, - "defaultSetValueSettings": null, - "defaultWidgetActionSettings": { - "type": "doNothing", - "targetDashboardStateId": null, - "openRightLayout": false, - "setEntityId": false, - "stateEntityParamName": null - } } ], "properties": [ { "id": "openedColor", - "name": "{i18n:scada.symbol.running-color}", + "name": "{i18n:scada.symbol.colors}", "type": "color", "default": "#FFFFFF", "required": null, - "subLabel": null, - "divider": null, + "subLabel": "{i18n:scada.symbol.opened}", + "divider": true, "fieldSuffix": null, "disableOnProperty": null, "rowClass": "", @@ -310,11 +325,11 @@ }, { "id": "closedColor", - "name": "{i18n:scada.symbol.closed-color}", + "name": "{i18n:scada.symbol.colors}", "type": "color", "default": "#666666", "required": null, - "subLabel": null, + "subLabel": "{i18n:scada.symbol.closed-mode}", "divider": null, "fieldSuffix": null, "disableOnProperty": null, @@ -326,12 +341,12 @@ }, { "id": "warningColor", - "name": "{i18n:scada.symbol.warning-color}", + "name": "{i18n:scada.symbol.alarm-colors}", "type": "color", "default": "#FAA405", "required": null, - "subLabel": null, - "divider": null, + "subLabel": "{i18n:scada.symbol.warning}", + "divider": true, "fieldSuffix": null, "disableOnProperty": null, "rowClass": "", @@ -342,12 +357,12 @@ }, { "id": "criticalColor", - "name": "{i18n:scada.symbol.critical-color}", + "name": "{i18n:scada.symbol.alarm-colors}", "type": "color", "default": "#D12730", "required": null, - "subLabel": null, - "divider": null, + "subLabel": "{i18n:scada.symbol.critical}", + "divider": false, "fieldSuffix": null, "disableOnProperty": null, "rowClass": "", @@ -358,26 +373,20 @@ } ] } - - + - - - - - + - - + - + \ No newline at end of file diff --git a/application/src/main/data/json/system/scada_symbols/large-cylindrical-tank.svg b/application/src/main/data/json/system/scada_symbols/large-cylindrical-tank.svg index eaea959550..772e34f0f7 100644 --- a/application/src/main/data/json/system/scada_symbols/large-cylindrical-tank.svg +++ b/application/src/main/data/json/system/scada_symbols/large-cylindrical-tank.svg @@ -142,7 +142,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -151,16 +151,25 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, @@ -177,7 +186,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -186,16 +195,22 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, diff --git a/application/src/main/data/json/system/scada_symbols/large-stand-cylindrical-tank.svg b/application/src/main/data/json/system/scada_symbols/large-stand-cylindrical-tank.svg index 3d2708ef11..dc9cb47268 100644 --- a/application/src/main/data/json/system/scada_symbols/large-stand-cylindrical-tank.svg +++ b/application/src/main/data/json/system/scada_symbols/large-stand-cylindrical-tank.svg @@ -143,7 +143,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -152,16 +152,25 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, @@ -178,7 +187,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -187,16 +196,22 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, diff --git a/application/src/main/data/json/system/scada_symbols/large-stand-vertical-tank.svg b/application/src/main/data/json/system/scada_symbols/large-stand-vertical-tank.svg index 89d3095953..b7cb67f2a0 100644 --- a/application/src/main/data/json/system/scada_symbols/large-stand-vertical-tank.svg +++ b/application/src/main/data/json/system/scada_symbols/large-stand-vertical-tank.svg @@ -143,7 +143,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -152,16 +152,25 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, @@ -178,7 +187,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -187,16 +196,22 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, diff --git a/application/src/main/data/json/system/scada_symbols/large-vertical-tank.svg b/application/src/main/data/json/system/scada_symbols/large-vertical-tank.svg index 7eebad7d7a..3b9420e04d 100644 --- a/application/src/main/data/json/system/scada_symbols/large-vertical-tank.svg +++ b/application/src/main/data/json/system/scada_symbols/large-vertical-tank.svg @@ -142,7 +142,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -151,16 +151,25 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, @@ -177,7 +186,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -186,16 +195,22 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, diff --git a/application/src/main/data/json/system/scada_symbols/left-analog-water-level-meter.svg b/application/src/main/data/json/system/scada_symbols/left-analog-water-level-meter.svg index 6eef9bf474..18394d3d2c 100644 --- a/application/src/main/data/json/system/scada_symbols/left-analog-water-level-meter.svg +++ b/application/src/main/data/json/system/scada_symbols/left-analog-water-level-meter.svg @@ -135,7 +135,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -144,16 +144,25 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, @@ -170,7 +179,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -179,16 +188,22 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, diff --git a/application/src/main/data/json/system/scada_symbols/left-flow-meter.svg b/application/src/main/data/json/system/scada_symbols/left-flow-meter.svg index faa5153531..12ec888e66 100644 --- a/application/src/main/data/json/system/scada_symbols/left-flow-meter.svg +++ b/application/src/main/data/json/system/scada_symbols/left-flow-meter.svg @@ -120,7 +120,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -135,6 +135,15 @@ "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", "dataToValueFunction": "/* Should return boolean value */\nreturn data;", @@ -155,7 +164,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -170,6 +179,12 @@ "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", "dataToValueFunction": "/* Should return boolean value */\nreturn data;", diff --git a/application/src/main/data/json/system/scada_symbols/left-heat-pump.svg b/application/src/main/data/json/system/scada_symbols/left-heat-pump.svg index 251dfe6729..f1e982bac0 100644 --- a/application/src/main/data/json/system/scada_symbols/left-heat-pump.svg +++ b/application/src/main/data/json/system/scada_symbols/left-heat-pump.svg @@ -259,7 +259,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -268,16 +268,25 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, @@ -294,7 +303,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -303,16 +312,22 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, diff --git a/application/src/main/data/json/system/scada_symbols/left-motor-pump.svg b/application/src/main/data/json/system/scada_symbols/left-motor-pump.svg index 998501a59f..40ad35adf4 100644 --- a/application/src/main/data/json/system/scada_symbols/left-motor-pump.svg +++ b/application/src/main/data/json/system/scada_symbols/left-motor-pump.svg @@ -70,7 +70,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -85,6 +85,15 @@ "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", "dataToValueFunction": "/* Should return boolean value */\nreturn data;", @@ -105,7 +114,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -120,6 +129,12 @@ "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", "dataToValueFunction": "/* Should return boolean value */\nreturn data;", diff --git a/application/src/main/data/json/system/scada_symbols/pool-hp.svg b/application/src/main/data/json/system/scada_symbols/pool-hp.svg index d6aed15dbf..e67280d617 100644 --- a/application/src/main/data/json/system/scada_symbols/pool-hp.svg +++ b/application/src/main/data/json/system/scada_symbols/pool-hp.svg @@ -1,9 +1,9 @@ - - { +<svg xmlns="http://www.w3.org/2000/svg" xmlns:tb="https://thingsboard.io/svg" width="2400" height="800" fill="none" version="1.1" viewBox="0 0 2400 800"><tb:metadata xmlns=""><![CDATA[{ "title": "HP Pool", - "description": "Pool", + "description": "Pool with level visualizations.", "searchTags": [ - "pool" + "pool", + "high performance" ], "widgetSizeX": 12, "widgetSizeY": 4, @@ -122,16 +122,16 @@ }, { "id": "warning", - "name": "{i18n:scada.symbol.warning-state}", + "name": "{i18n:scada.symbol.warning}", "hint": "{i18n:scada.symbol.warning-state-hint}", - "group": null, + "group": "{i18n:scada.symbol.warning-state}", "type": "value", "valueType": "BOOLEAN", "trueLabel": null, "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -140,33 +140,62 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, + { + "id": "warningClick", + "name": "{i18n:scada.symbol.warning-click}", + "hint": "{i18n:scada.symbol.on-click-hint}", + "group": "{i18n:scada.symbol.warning-state}", + "type": "widgetAction", + "valueType": "BOOLEAN", + "trueLabel": null, + "falseLabel": null, + "stateLabel": null, + "defaultGetValueSettings": null, + "defaultSetValueSettings": null, + "defaultWidgetActionSettings": { + "type": "doNothing", + "targetDashboardStateId": null, + "openRightLayout": false, + "setEntityId": false, + "stateEntityParamName": null + } + }, { "id": "critical", - "name": "{i18n:scada.symbol.critical-state}", + "name": "{i18n:scada.symbol.critical}", "hint": "{i18n:scada.symbol.critical-state-hint}", - "group": null, + "group": "{i18n:scada.symbol.critical-state}", "type": "value", "valueType": "BOOLEAN", "trueLabel": null, "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -175,21 +204,47 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, + { + "id": "criticalClick", + "name": "{i18n:scada.symbol.critical-click}", + "hint": "{i18n:scada.symbol.on-click-hint}", + "group": "{i18n:scada.symbol.critical-state}", + "type": "widgetAction", + "valueType": "BOOLEAN", + "trueLabel": null, + "falseLabel": null, + "stateLabel": null, + "defaultGetValueSettings": null, + "defaultSetValueSettings": null, + "defaultWidgetActionSettings": { + "type": "doNothing", + "targetDashboardStateId": null, + "openRightLayout": false, + "setEntityId": false, + "stateEntityParamName": null + } + }, { "id": "criticalAnimation", "name": "{i18n:scada.symbol.critical-state-animation}", @@ -225,46 +280,6 @@ "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, - { - "id": "warningClick", - "name": "{i18n:scada.symbol.warning-click}", - "hint": "{i18n:scada.symbol.on-click-hint}", - "group": null, - "type": "widgetAction", - "valueType": "BOOLEAN", - "trueLabel": null, - "falseLabel": null, - "stateLabel": null, - "defaultGetValueSettings": null, - "defaultSetValueSettings": null, - "defaultWidgetActionSettings": { - "type": "doNothing", - "targetDashboardStateId": null, - "openRightLayout": false, - "setEntityId": false, - "stateEntityParamName": null - } - }, - { - "id": "criticalClick", - "name": "{i18n:scada.symbol.critical-click}", - "hint": "{i18n:scada.symbol.on-click-hint}", - "group": null, - "type": "widgetAction", - "valueType": "BOOLEAN", - "trueLabel": null, - "falseLabel": null, - "stateLabel": null, - "defaultGetValueSettings": null, - "defaultSetValueSettings": null, - "defaultWidgetActionSettings": { - "type": "doNothing", - "targetDashboardStateId": null, - "openRightLayout": false, - "setEntityId": false, - "stateEntityParamName": null - } - }, { "id": "click", "name": "{i18n:scada.symbol.on-click}", @@ -342,7 +357,7 @@ "default": 10, "required": null, "subLabel": "{i18n:scada.symbol.intervals}", - "divider": true, + "divider": false, "fieldSuffix": null, "disableOnProperty": "scale", "rowClass": "", @@ -375,7 +390,7 @@ }, { "id": "majorColor", - "name": "{i18n:scada.symbol.major-ticks-color}", + "name": "{i18n:scada.symbol.major-ticks}", "type": "color", "default": "#00000061", "required": null, @@ -407,7 +422,7 @@ }, { "id": "minorColor", - "name": "{i18n:scada.symbol.minor-ticks-color}", + "name": "{i18n:scada.symbol.minor-ticks}", "type": "color", "default": "#0000001F", "required": null, @@ -423,12 +438,12 @@ }, { "id": "warningColor", - "name": "{i18n:scada.symbol.warning-color}", + "name": "{i18n:scada.symbol.alarm-colors}", "type": "color", "default": "#FAA405", "required": null, - "subLabel": null, - "divider": null, + "subLabel": "{i18n:scada.symbol.warning}", + "divider": true, "fieldSuffix": null, "disableOnProperty": null, "rowClass": "", @@ -439,11 +454,11 @@ }, { "id": "criticalColor", - "name": "{i18n:scada.symbol.critical-color}", + "name": "{i18n:scada.symbol.alarm-colors}", "type": "color", "default": "#D12730", "required": null, - "subLabel": null, + "subLabel": "{i18n:scada.symbol.critical}", "divider": null, "fieldSuffix": null, "disableOnProperty": null, @@ -455,15 +470,11 @@ } ] } - - - + - - + - - + @@ -526,18 +537,15 @@ - - - + - - + - + \ No newline at end of file diff --git a/application/src/main/data/json/system/scada_symbols/pump-hp.svg b/application/src/main/data/json/system/scada_symbols/pump-hp.svg index d3b309c409..daaca4ae9c 100644 --- a/application/src/main/data/json/system/scada_symbols/pump-hp.svg +++ b/application/src/main/data/json/system/scada_symbols/pump-hp.svg @@ -3,7 +3,8 @@ "description": "Centrifugal pump with configurable connectors and various states.", "searchTags": [ "pump", - "centrifugal" + "centrifugal", + "high performance" ], "widgetSizeX": 2, "widgetSizeY": 2, @@ -80,16 +81,16 @@ }, { "id": "warning", - "name": "{i18n:scada.symbol.warning-state}", + "name": "{i18n:scada.symbol.warning}", "hint": "{i18n:scada.symbol.warning-state-hint}", - "group": null, + "group": "{i18n:scada.symbol.warning-state}", "type": "value", "valueType": "BOOLEAN", "trueLabel": null, "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -98,33 +99,62 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, + { + "id": "warningClick", + "name": "{i18n:scada.symbol.warning-click}", + "hint": "{i18n:scada.symbol.on-click-hint}", + "group": "{i18n:scada.symbol.warning-state}", + "type": "widgetAction", + "valueType": "BOOLEAN", + "trueLabel": null, + "falseLabel": null, + "stateLabel": null, + "defaultGetValueSettings": null, + "defaultSetValueSettings": null, + "defaultWidgetActionSettings": { + "type": "doNothing", + "targetDashboardStateId": null, + "openRightLayout": false, + "setEntityId": false, + "stateEntityParamName": null + } + }, { "id": "critical", - "name": "{i18n:scada.symbol.critical-state}", + "name": "{i18n:scada.symbol.critical}", "hint": "{i18n:scada.symbol.critical-state-hint}", - "group": null, + "group": "{i18n:scada.symbol.critical-state}", "type": "value", "valueType": "BOOLEAN", "trueLabel": null, "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -133,21 +163,47 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, + { + "id": "criticalClick", + "name": "{i18n:scada.symbol.critical-click}", + "hint": "{i18n:scada.symbol.on-click-hint}", + "group": "{i18n:scada.symbol.critical-state}", + "type": "widgetAction", + "valueType": "BOOLEAN", + "trueLabel": null, + "falseLabel": null, + "stateLabel": null, + "defaultGetValueSettings": null, + "defaultSetValueSettings": null, + "defaultWidgetActionSettings": { + "type": "doNothing", + "targetDashboardStateId": null, + "openRightLayout": false, + "setEntityId": false, + "stateEntityParamName": null + } + }, { "id": "criticalAnimation", "name": "{i18n:scada.symbol.critical-state-animation}", @@ -183,46 +239,6 @@ "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, - { - "id": "warningClick", - "name": "{i18n:scada.symbol.warning-click}", - "hint": "{i18n:scada.symbol.on-click-hint}", - "group": null, - "type": "widgetAction", - "valueType": "BOOLEAN", - "trueLabel": null, - "falseLabel": null, - "stateLabel": null, - "defaultGetValueSettings": null, - "defaultSetValueSettings": null, - "defaultWidgetActionSettings": { - "type": "doNothing", - "targetDashboardStateId": null, - "openRightLayout": false, - "setEntityId": false, - "stateEntityParamName": null - } - }, - { - "id": "criticalClick", - "name": "{i18n:scada.symbol.critical-click}", - "hint": "{i18n:scada.symbol.on-click-hint}", - "group": null, - "type": "widgetAction", - "valueType": "BOOLEAN", - "trueLabel": null, - "falseLabel": null, - "stateLabel": null, - "defaultGetValueSettings": null, - "defaultSetValueSettings": null, - "defaultWidgetActionSettings": { - "type": "doNothing", - "targetDashboardStateId": null, - "openRightLayout": false, - "setEntityId": false, - "stateEntityParamName": null - } - }, { "id": "click", "name": "{i18n:scada.symbol.on-click}", @@ -247,12 +263,12 @@ "properties": [ { "id": "runningColor", - "name": "{i18n:scada.symbol.running-color}", + "name": "{i18n:scada.symbol.colors}", "type": "color", "default": "#FFFFFF", "required": null, - "subLabel": null, - "divider": null, + "subLabel": "{i18n:scada.symbol.running}", + "divider": true, "fieldSuffix": null, "disableOnProperty": null, "rowClass": "", @@ -263,11 +279,11 @@ }, { "id": "stoppedColor", - "name": "{i18n:scada.symbol.stopped-color}", + "name": "{i18n:scada.symbol.colors}", "type": "color", "default": "#666666", "required": null, - "subLabel": null, + "subLabel": "{i18n:scada.symbol.stopped}", "divider": null, "fieldSuffix": null, "disableOnProperty": null, @@ -279,12 +295,12 @@ }, { "id": "warningColor", - "name": "{i18n:scada.symbol.warning-color}", + "name": "{i18n:scada.symbol.alarm-colors}", "type": "color", "default": "#FAA405", "required": null, - "subLabel": null, - "divider": null, + "subLabel": "{i18n:scada.symbol.warning}", + "divider": true, "fieldSuffix": null, "disableOnProperty": null, "rowClass": "", @@ -295,11 +311,11 @@ }, { "id": "criticalColor", - "name": "{i18n:scada.symbol.critical-color}", + "name": "{i18n:scada.symbol.alarm-colors}", "type": "color", "default": "#D12730", "required": null, - "subLabel": null, + "subLabel": "Critical", "divider": null, "fieldSuffix": null, "disableOnProperty": null, diff --git a/application/src/main/data/json/system/scada_symbols/right-analog-water-level-meter.svg b/application/src/main/data/json/system/scada_symbols/right-analog-water-level-meter.svg index bc271bbdcf..4bd6754f5c 100644 --- a/application/src/main/data/json/system/scada_symbols/right-analog-water-level-meter.svg +++ b/application/src/main/data/json/system/scada_symbols/right-analog-water-level-meter.svg @@ -135,7 +135,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -144,16 +144,25 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, @@ -170,7 +179,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -179,16 +188,22 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, diff --git a/application/src/main/data/json/system/scada_symbols/right-flow-meter.svg b/application/src/main/data/json/system/scada_symbols/right-flow-meter.svg index 71ade4c774..9be5ec5857 100644 --- a/application/src/main/data/json/system/scada_symbols/right-flow-meter.svg +++ b/application/src/main/data/json/system/scada_symbols/right-flow-meter.svg @@ -120,7 +120,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -135,6 +135,15 @@ "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", "dataToValueFunction": "/* Should return boolean value */\nreturn data;", @@ -155,7 +164,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -170,6 +179,12 @@ "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", "dataToValueFunction": "/* Should return boolean value */\nreturn data;", diff --git a/application/src/main/data/json/system/scada_symbols/right-heat-pump.svg b/application/src/main/data/json/system/scada_symbols/right-heat-pump.svg index c2b4042671..b1aa081b82 100644 --- a/application/src/main/data/json/system/scada_symbols/right-heat-pump.svg +++ b/application/src/main/data/json/system/scada_symbols/right-heat-pump.svg @@ -259,7 +259,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -268,16 +268,25 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, @@ -294,7 +303,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -303,16 +312,22 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, diff --git a/application/src/main/data/json/system/scada_symbols/right-motor-pump.svg b/application/src/main/data/json/system/scada_symbols/right-motor-pump.svg index bb52315f1b..e1193a4df9 100644 --- a/application/src/main/data/json/system/scada_symbols/right-motor-pump.svg +++ b/application/src/main/data/json/system/scada_symbols/right-motor-pump.svg @@ -70,7 +70,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -85,6 +85,15 @@ "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", "dataToValueFunction": "/* Should return boolean value */\nreturn data;", @@ -105,7 +114,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -120,6 +129,12 @@ "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", "dataToValueFunction": "/* Should return boolean value */\nreturn data;", diff --git a/application/src/main/data/json/system/scada_symbols/sand-filter-hp.svg b/application/src/main/data/json/system/scada_symbols/sand-filter-hp.svg index 9a0b9c9d13..01cc98ce0f 100644 --- a/application/src/main/data/json/system/scada_symbols/sand-filter-hp.svg +++ b/application/src/main/data/json/system/scada_symbols/sand-filter-hp.svg @@ -1,10 +1,10 @@ - - { +<svg xmlns="http://www.w3.org/2000/svg" xmlns:tb="https://thingsboard.io/svg" width="600" height="1e3" fill="none" version="1.1" viewBox="0 0 600 1e3"><tb:metadata xmlns=""><![CDATA[{ "title": "HP Sand filter", "description": "Sand filter with configurable filtration mode option and various states.", "searchTags": [ "filter", - "sand" + "sand", + "high performance" ], "widgetSizeX": 3, "widgetSizeY": 5, @@ -154,16 +154,16 @@ }, { "id": "warning", - "name": "{i18n:scada.symbol.warning-state}", + "name": "{i18n:scada.symbol.warning}", "hint": "{i18n:scada.symbol.warning-state}", - "group": null, + "group": "{i18n:scada.symbol.warning-state}", "type": "value", "valueType": "BOOLEAN", "trueLabel": null, "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -172,33 +172,62 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, + { + "id": "warningClick", + "name": "{i18n:scada.symbol.warning-click}", + "hint": "{i18n:scada.symbol.on-click-hint}", + "group": "{i18n:scada.symbol.warning-state}", + "type": "widgetAction", + "valueType": "BOOLEAN", + "trueLabel": null, + "falseLabel": null, + "stateLabel": null, + "defaultGetValueSettings": null, + "defaultSetValueSettings": null, + "defaultWidgetActionSettings": { + "type": "doNothing", + "targetDashboardStateId": null, + "openRightLayout": false, + "setEntityId": false, + "stateEntityParamName": null + } + }, { "id": "critical", - "name": "{i18n:scada.symbol.critical-state}", + "name": "{i18n:scada.symbol.critical}", "hint": "{i18n:scada.symbol.critical-state-hint}", - "group": null, + "group": "{i18n:scada.symbol.critical-state}", "type": "value", "valueType": "BOOLEAN", "trueLabel": null, "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -207,21 +236,47 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, + { + "id": "criticalClick", + "name": "{i18n:scada.symbol.critical-click}", + "hint": "{i18n:scada.symbol.on-click-hint}", + "group": "{i18n:scada.symbol.critical-state}", + "type": "widgetAction", + "valueType": "BOOLEAN", + "trueLabel": null, + "falseLabel": null, + "stateLabel": null, + "defaultGetValueSettings": null, + "defaultSetValueSettings": null, + "defaultWidgetActionSettings": { + "type": "doNothing", + "targetDashboardStateId": null, + "openRightLayout": false, + "setEntityId": false, + "stateEntityParamName": null + } + }, { "id": "criticalAnimation", "name": "{i18n:scada.symbol.critical-state-animation}", @@ -257,46 +312,6 @@ "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, - { - "id": "warningClick", - "name": "{i18n:scada.symbol.warning-click}", - "hint": "{i18n:scada.symbol.on-click-hint}", - "group": null, - "type": "widgetAction", - "valueType": "BOOLEAN", - "trueLabel": null, - "falseLabel": null, - "stateLabel": null, - "defaultGetValueSettings": null, - "defaultSetValueSettings": null, - "defaultWidgetActionSettings": { - "type": "doNothing", - "targetDashboardStateId": null, - "openRightLayout": false, - "setEntityId": false, - "stateEntityParamName": null - } - }, - { - "id": "criticalClick", - "name": "{i18n:scada.symbol.critical-click}", - "hint": "{i18n:scada.symbol.on-click-hint}", - "group": null, - "type": "widgetAction", - "valueType": "BOOLEAN", - "trueLabel": null, - "falseLabel": null, - "stateLabel": null, - "defaultGetValueSettings": null, - "defaultSetValueSettings": null, - "defaultWidgetActionSettings": { - "type": "doNothing", - "targetDashboardStateId": null, - "openRightLayout": false, - "setEntityId": false, - "stateEntityParamName": null - } - }, { "id": "click", "name": "{i18n:scada.symbol.on-click}", @@ -417,12 +432,12 @@ }, { "id": "runningColor", - "name": "{i18n:scada.symbol.running-color}", + "name": "{i18n:scada.symbol.colors}", "type": "color", "default": "#FFFFFF", "required": null, - "subLabel": null, - "divider": null, + "subLabel": "{i18n:scada.symbol.running}", + "divider": true, "fieldSuffix": null, "disableOnProperty": null, "rowClass": "", @@ -433,11 +448,11 @@ }, { "id": "stoppedColor", - "name": "{i18n:scada.symbol.stopped-color}", + "name": "{i18n:scada.symbol.colors}", "type": "color", "default": "#666666", "required": null, - "subLabel": null, + "subLabel": "{i18n:scada.symbol.stopped}", "divider": null, "fieldSuffix": null, "disableOnProperty": null, @@ -449,12 +464,12 @@ }, { "id": "warningColor", - "name": "{i18n:scada.symbol.warning-color}", + "name": "{i18n:scada.symbol.alarm-colors}", "type": "color", "default": "#FAA405", "required": null, - "subLabel": null, - "divider": null, + "subLabel": "{i18n:scada.symbol.warning}", + "divider": true, "fieldSuffix": null, "disableOnProperty": null, "rowClass": "", @@ -465,11 +480,11 @@ }, { "id": "criticalColor", - "name": "{i18n:scada.symbol.critical-color}", + "name": "{i18n:scada.symbol.alarm-colors}", "type": "color", "default": "#D12730", "required": null, - "subLabel": null, + "subLabel": "{i18n:scada.symbol.critical}", "divider": null, "fieldSuffix": null, "disableOnProperty": null, @@ -577,7 +592,7 @@ } ] } - + @@ -592,21 +607,17 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + @@ -638,4 +649,4 @@ Closed - + \ No newline at end of file diff --git a/application/src/main/data/json/system/scada_symbols/short-vertical-tank-hp.svg b/application/src/main/data/json/system/scada_symbols/short-vertical-tank-hp.svg index 3d32e49ab8..8a86100091 100644 --- a/application/src/main/data/json/system/scada_symbols/short-vertical-tank-hp.svg +++ b/application/src/main/data/json/system/scada_symbols/short-vertical-tank-hp.svg @@ -1,9 +1,9 @@ - - { +<svg xmlns="http://www.w3.org/2000/svg" xmlns:tb="https://thingsboard.io/svg" width="600" height="600" fill="none" version="1.1" viewBox="0 0 600 600"><tb:metadata xmlns=""><![CDATA[{ "title": "HP Short vertical tank", - "description": "Short vertical tank", + "description": "Short vertical tank with level visualizations.", "searchTags": [ - "short tank" + "short tank", + "high performance" ], "widgetSizeX": 3, "widgetSizeY": 3, @@ -122,16 +122,16 @@ }, { "id": "warning", - "name": "{i18n:scada.symbol.warning-state}", + "name": "{i18n:scada.symbol.warning}", "hint": "{i18n:scada.symbol.warning-state-hint}", - "group": null, + "group": "{i18n:scada.symbol.warning-state}", "type": "value", "valueType": "BOOLEAN", "trueLabel": null, "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -140,33 +140,62 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, + { + "id": "warningClick", + "name": "{i18n:scada.symbol.warning-click}", + "hint": "{i18n:scada.symbol.on-click-hint}", + "group": "{i18n:scada.symbol.warning-state}", + "type": "widgetAction", + "valueType": "BOOLEAN", + "trueLabel": null, + "falseLabel": null, + "stateLabel": null, + "defaultGetValueSettings": null, + "defaultSetValueSettings": null, + "defaultWidgetActionSettings": { + "type": "doNothing", + "targetDashboardStateId": null, + "openRightLayout": false, + "setEntityId": false, + "stateEntityParamName": null + } + }, { "id": "critical", - "name": "{i18n:scada.symbol.critical-state}", + "name": "{i18n:scada.symbol.critical}", "hint": "{i18n:scada.symbol.critical-state-hint}", - "group": null, + "group": "{i18n:scada.symbol.critical-state}", "type": "value", "valueType": "BOOLEAN", "trueLabel": null, "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -175,21 +204,47 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, + { + "id": "criticalClick", + "name": "{i18n:scada.symbol.critical-click}", + "hint": "{i18n:scada.symbol.on-click-hint}", + "group": "{i18n:scada.symbol.critical-state}", + "type": "widgetAction", + "valueType": "BOOLEAN", + "trueLabel": null, + "falseLabel": null, + "stateLabel": null, + "defaultGetValueSettings": null, + "defaultSetValueSettings": null, + "defaultWidgetActionSettings": { + "type": "doNothing", + "targetDashboardStateId": null, + "openRightLayout": false, + "setEntityId": false, + "stateEntityParamName": null + } + }, { "id": "criticalAnimation", "name": "{i18n:scada.symbol.critical-state-animation}", @@ -225,46 +280,6 @@ "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, - { - "id": "warningClick", - "name": "{i18n:scada.symbol.warning-click}", - "hint": "{i18n:scada.symbol.on-click-hint}", - "group": null, - "type": "widgetAction", - "valueType": "BOOLEAN", - "trueLabel": null, - "falseLabel": null, - "stateLabel": null, - "defaultGetValueSettings": null, - "defaultSetValueSettings": null, - "defaultWidgetActionSettings": { - "type": "doNothing", - "targetDashboardStateId": null, - "openRightLayout": false, - "setEntityId": false, - "stateEntityParamName": null - } - }, - { - "id": "criticalClick", - "name": "{i18n:scada.symbol.critical-click}", - "hint": "{i18n:scada.symbol.on-click-hint}", - "group": null, - "type": "widgetAction", - "valueType": "BOOLEAN", - "trueLabel": null, - "falseLabel": null, - "stateLabel": null, - "defaultGetValueSettings": null, - "defaultSetValueSettings": null, - "defaultWidgetActionSettings": { - "type": "doNothing", - "targetDashboardStateId": null, - "openRightLayout": false, - "setEntityId": false, - "stateEntityParamName": null - } - }, { "id": "click", "name": "{i18n:scada.symbol.on-click}", @@ -342,7 +357,7 @@ "default": 10, "required": null, "subLabel": "{i18n:scada.symbol.intervals}", - "divider": true, + "divider": false, "fieldSuffix": null, "disableOnProperty": "scale", "rowClass": "", @@ -375,7 +390,7 @@ }, { "id": "majorColor", - "name": "{i18n:scada.symbol.major-ticks-color}", + "name": "{i18n:scada.symbol.major-ticks}", "type": "color", "default": "#00000061", "required": null, @@ -407,7 +422,7 @@ }, { "id": "minorColor", - "name": "{i18n:scada.symbol.minor-ticks-color}", + "name": "{i18n:scada.symbol.minor-ticks}", "type": "color", "default": "#0000001F", "required": null, @@ -423,12 +438,12 @@ }, { "id": "warningColor", - "name": "{i18n:scada.symbol.warning-color}", + "name": "{i18n:scada.symbol.alarm-colors}", "type": "color", "default": "#FAA405", "required": null, - "subLabel": null, - "divider": null, + "subLabel": "{i18n:scada.symbol.warning}", + "divider": true, "fieldSuffix": null, "disableOnProperty": null, "rowClass": "", @@ -439,11 +454,11 @@ }, { "id": "criticalColor", - "name": "{i18n:scada.symbol.critical-color}", + "name": "{i18n:scada.symbol.alarm-colors}", "type": "color", "default": "#D12730", "required": null, - "subLabel": null, + "subLabel": "{i18n:scada.symbol.critical}", "divider": null, "fieldSuffix": null, "disableOnProperty": null, @@ -455,16 +470,12 @@ } ] } - - - + - - + - - + @@ -527,18 +538,15 @@ - - - + - - + - + \ No newline at end of file diff --git a/application/src/main/data/json/system/scada_symbols/simple-horizontal-scale-hp.svg b/application/src/main/data/json/system/scada_symbols/simple-horizontal-scale-hp.svg index 88850cee1d..e69daae548 100644 --- a/application/src/main/data/json/system/scada_symbols/simple-horizontal-scale-hp.svg +++ b/application/src/main/data/json/system/scada_symbols/simple-horizontal-scale-hp.svg @@ -1,5 +1,4 @@ - - { +<svg xmlns="http://www.w3.org/2000/svg" xmlns:tb="https://thingsboard.io/svg" width="800" height="400" fill="none" version="1.1" viewBox="0 0 800 400"><tb:metadata xmlns=""><![CDATA[{ "title": "HP Simple horizontal scale", "description": "Simple horizontal scale with current volume value and configurable warning and critical scale.", "searchTags": [ @@ -19,22 +18,12 @@ }, { "tag": "highCriticalScale", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 638;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showHighCriticalValue = ctx.properties.showHighCriticalScale;\nvar highCriticalValue = ctx.properties.highCriticalScale;\n\nif (showHighCriticalValue) {\n element.show();\n var offset = calculateOffset(highCriticalValue, minValue, maxValue);\n var childrenElement = element.children();\n childrenElement[0].height(638-offset);\n childrenElement[1].height(638-offset-1);\n} else {\n element.hide();\n}", - "actions": null - }, - { - "tag": "highCriticalScaleBackground", - "stateRenderFunction": "var value = ctx.values.value;\nvar showHighCriticalValue = ctx.properties.showHighCriticalScale;\n\nif (showHighCriticalValue && value !== null) {\n var highCriticalScale = ctx.properties.highCriticalScale;\n if (value >= highCriticalScale && value <= ctx.properties.maxValue) {\n element.fill(ctx.properties.activeCriticalScaleColor);\n } else {\n element.fill(ctx.properties.defaultCriticalScaleColor)\n }\n}", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showHighCriticalScale = ctx.properties.showHighCriticalScale;\nvar highCriticalValue = ctx.properties.highCriticalScale;\nvar value = ctx.values.value;\n\nif (showHighCriticalScale) {\n element.show();\n var offset = calculateOffset(highCriticalValue, minValue, maxValue);\n element.width(653-offset);\n} else {\n element.hide();\n}\n\nif (showHighCriticalScale && value !== null) {\n var highCriticalScale = ctx.properties.highCriticalScale;\n if (value >= highCriticalScale && value <= ctx.properties.maxValue) {\n element.fill(ctx.properties.activeCriticalScaleColor);\n } else {\n element.fill(ctx.properties.defaultCriticalScaleColor)\n }\n}", "actions": null }, { "tag": "highWarningScale", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 638;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showHighWarningScale = ctx.properties.showHighWarningScale;\nvar highWarningValue = ctx.properties.highWarningScale;\nif (showHighWarningScale) {\n element.show();\n var offset = calculateOffset(highWarningValue, minValue, maxValue);\n var childrenElement = element.children();\n childrenElement[0].height(638-offset);\n childrenElement[1].height(638-offset-1);\n} else {\n element.hide();\n}", - "actions": null - }, - { - "tag": "highWarningScaleBackground", - "stateRenderFunction": "var value = ctx.values.value;\nvar showHighWarningScale = ctx.properties.showHighWarningScale;\nvar showHighCriticalScale = ctx.properties.showHighCriticalScale;\n\nif (showHighWarningScale && value !== null) {\n var highCriticalScale = ctx.properties.highCriticalScale;\n if (!showHighCriticalScale) {\n highCriticalScale = ctx.properties.maxValue;\n }\n var highWarningScale = ctx.properties.highWarningScale;\n if (value < highCriticalScale && value >= highWarningScale) {\n element.fill(ctx.properties.activeWarningScaleColor);\n } else {\n element.fill(ctx.properties.defaultWarningScaleColor);\n }\n}", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showHighWarningScale = ctx.properties.showHighWarningScale;\nvar showHighCriticalScale = ctx.properties.showHighCriticalScale;\nvar highWarningValue = ctx.properties.highWarningScale;\nvar value = ctx.values.value;\n\nif (showHighWarningScale) {\n element.show();\n var offset = calculateOffset(highWarningValue, minValue, maxValue);\n element.width(653-offset);\n} else {\n element.hide();\n}\n\nif (showHighWarningScale && value !== null) {\n var highCriticalScale = ctx.properties.highCriticalScale;\n if (!showHighCriticalScale) {\n highCriticalScale = ctx.properties.maxValue;\n }\n var highWarningScale = ctx.properties.highWarningScale;\n if (value < highCriticalScale && value >= highWarningScale) {\n element.fill(ctx.properties.activeWarningScaleColor);\n } else {\n element.fill(ctx.properties.defaultWarningScaleColor);\n }\n}", "actions": null }, { @@ -44,22 +33,12 @@ }, { "tag": "lowCriticalScale", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 638;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showLowCriticalScale = ctx.properties.showLowCriticalScale;\nvar lowCriticalValue = ctx.properties.lowCriticalScale;\nif (showLowCriticalScale) {\n element.show();\n var offset = calculateOffset(lowCriticalValue, minValue, maxValue);\n var childrenElement = element.children();\n childrenElement[0].height(offset);\n childrenElement[1].height(offset-1);\n} else {\n element.hide();\n}", - "actions": null - }, - { - "tag": "lowCriticalScaleBackground", - "stateRenderFunction": "var value = ctx.values.value;\nvar showLowCriticalScale = ctx.properties.showLowCriticalScale;\nif (showLowCriticalScale && value !== null) {\n var lowCriticalScale = ctx.properties.lowCriticalScale;\n if (value <= lowCriticalScale && value >= ctx.properties.minValue) {\n element.fill(ctx.properties.activeCriticalScaleColor);\n } else {\n element.fill(ctx.properties.defaultCriticalScaleColor)\n }\n}", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n return offset;\n}\n\nvar value = ctx.values.value;\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showLowCriticalScale = ctx.properties.showLowCriticalScale;\nvar lowCriticalScale = ctx.properties.lowCriticalScale;\n\nif (showLowCriticalScale) {\n element.show();\n var offset = calculateOffset(lowCriticalScale, minValue, maxValue);\n var childrenElement = element.children();\n element.width(offset);\n} else {\n element.hide();\n}\n\nif (showLowCriticalScale && value !== null) {\n if (value <= lowCriticalScale && value >= ctx.properties.minValue) {\n element.fill(ctx.properties.activeCriticalScaleColor);\n } else {\n element.fill(ctx.properties.defaultCriticalScaleColor)\n }\n}", "actions": null }, { "tag": "lowWarningScale", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 638;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showLowWarningScale = ctx.properties.showLowWarningScale;\nvar lowWarningValue = ctx.properties.lowWarningScale;\nif (showLowWarningScale) {\n element.show();\n var offset = calculateOffset(lowWarningValue, minValue, maxValue);\n var childrenElement = element.children();\n childrenElement[0].height(offset);\n childrenElement[1].height(offset-1);\n} else {\n element.hide();\n}", - "actions": null - }, - { - "tag": "lowWarningScaleBackground", - "stateRenderFunction": "var value = ctx.values.value;\nvar showLowWarningScale = ctx.properties.showLowWarningScale;\nvar showLowCriticalScale = ctx.properties.showLowCriticalScale;\n\nif (showLowWarningScale && value !== null) {\n var lowCriticalScale = ctx.properties.lowCriticalScale;\n if (!showLowCriticalScale) {\n lowCriticalScale = ctx.properties.minValue;\n }\n var lowWarningScale = ctx.properties.lowWarningScale;\n if (value > lowCriticalScale && value <= lowWarningScale) {\n element.fill(ctx.properties.activeWarningScaleColor);\n } else {\n element.fill(ctx.properties.defaultWarningScaleColor);\n }\n}", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar value = ctx.values.value;\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showLowWarningScale = ctx.properties.showLowWarningScale;\nvar showLowCriticalScale = ctx.properties.showLowCriticalScale;\nvar lowWarningScale = ctx.properties.lowWarningScale;\nif (showLowWarningScale) {\n element.show();\n var offset = calculateOffset(lowWarningScale, minValue, maxValue);\n element.width(offset);\n} else {\n element.hide();\n}\n\nif (showLowWarningScale && value !== null) {\n var lowCriticalScale = ctx.properties.lowCriticalScale;\n if (!showLowCriticalScale) {\n lowCriticalScale = ctx.properties.minValue;\n }\n if (value > lowCriticalScale && value <= lowWarningScale) {\n element.fill(ctx.properties.activeWarningScaleColor);\n } else {\n element.fill(ctx.properties.defaultWarningScaleColor);\n }\n}", "actions": null }, { @@ -84,7 +63,7 @@ }, { "tag": "target", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 640;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showTarget = ctx.properties.showTarget;\nvar targetValue = ctx.values.targetValue;\n\nif (showTarget && targetValue !== null) {\n element.show();\n var offset = calculateOffset(targetValue, minValue, maxValue);\n element.transform({translateX: -(640 - (Math.min(Math.max(offset+12, 30), 635)))});\n} else {\n element.hide();\n}\n\n", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showTarget = ctx.properties.showTarget;\nvar targetValue = ctx.values.targetValue;\n\nif (showTarget && targetValue !== null) {\n element.show();\n var offset = calculateOffset(targetValue, minValue, maxValue);\n element.transform({translateX: Math.min(Math.max(offset-17, 0), 619)});\n} else {\n element.hide();\n}\n\n", "actions": null }, { @@ -99,7 +78,12 @@ }, { "tag": "value", - "stateRenderFunction": "if (ctx.properties.value !== null) {\n element.show();\n ctx.api.font(element, ctx.properties.valueFont, ctx.properties.valueColor);\n ctx.api.text(element, ctx.api.formatValue(ctx.values.value, ctx.properties.valueDecimals, null, ctx.properties.valueDecimals));\n} else {\n element.hide();\n}", + "stateRenderFunction": "if (ctx.properties.value) {\n element.show();\n ctx.api.font(element, ctx.properties.valueFont, ctx.properties.valueColor);\n ctx.api.text(element, ctx.api.formatValue(ctx.values.value, ctx.properties.valueDecimals, null, ctx.properties.valueDecimals));\n} else {\n element.hide();\n}", + "actions": null + }, + { + "tag": "valueArrowPosition", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar value = ctx.values.value;\n\nif (value !== null) {\n var offset = calculateOffset(value, minValue, maxValue);\n element.transform({translateX: offset});\n}\n", "actions": null }, { @@ -108,8 +92,8 @@ "actions": null }, { - "tag": "valuePosition", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 638;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar value = ctx.values.value;\n\nif (value !== null) {\n var offset = calculateOffset(value, minValue, maxValue);\n element.transform({translateX: -(638 - offset)});\n}\n", + "tag": "valueTextPositon", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar value = ctx.values.value;\n\nif (value !== null) {\n var offset = calculateOffset(value, minValue, maxValue);\n element.transform({translateX: offset});\n}\n", "actions": null } ], @@ -720,39 +704,20 @@ } ] } - Outdoor - °C - - 100 - 0 - - - - 26 - - - - - - - - - - - - - - - - - - - - - - - - - - - +Outdoor°C + 0 + 100 + + + + 26 + + + + + + + + + + \ No newline at end of file diff --git a/application/src/main/data/json/system/scada_symbols/simple-vertical-scale-hp.svg b/application/src/main/data/json/system/scada_symbols/simple-vertical-scale-hp.svg index 30b36e6e76..7f9244eaea 100644 --- a/application/src/main/data/json/system/scada_symbols/simple-vertical-scale-hp.svg +++ b/application/src/main/data/json/system/scada_symbols/simple-vertical-scale-hp.svg @@ -1,5 +1,4 @@ - - { +<svg xmlns="http://www.w3.org/2000/svg" xmlns:tb="https://thingsboard.io/svg" width="400" height="800" fill="none" version="1.1" viewBox="0 0 400 800"><tb:metadata xmlns=""><![CDATA[{ "title": "HP Simple vertical scale", "description": "Simple vertical scale with current volume value and configurable warning and critical scale.", "searchTags": [ @@ -19,22 +18,12 @@ }, { "tag": "highCriticalScale", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showHighCriticalValue = ctx.properties.showHighCriticalScale;\nvar highCriticalValue = ctx.properties.highCriticalScale;\n\nif (showHighCriticalValue) {\n element.show();\n var offset = calculateOffset(highCriticalValue, minValue, maxValue);\n var childrenElement = element.children();\n childrenElement[0].height(653-offset);\n childrenElement[1].height(653-offset-1);\n} else {\n element.hide();\n}", - "actions": null - }, - { - "tag": "highCriticalScaleBackground", - "stateRenderFunction": "var value = ctx.values.value;\nvar showHighCriticalValue = ctx.properties.showHighCriticalScale;\n\nif (showHighCriticalValue && value !== null) {\n var highCriticalScale = ctx.properties.highCriticalScale;\n if (value >= highCriticalScale && value <= ctx.properties.maxValue) {\n element.fill(ctx.properties.activeCriticalScaleColor);\n } else {\n element.fill(ctx.properties.defaultCriticalScaleColor)\n }\n}", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n return offset;\n}\n\nvar value = ctx.values.value;\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showHighCriticalScale = ctx.properties.showHighCriticalScale;\nvar highCriticalScale = ctx.properties.highCriticalScale;\n\nif (showHighCriticalScale) {\n element.show();\n var offset = calculateOffset(highCriticalScale, minValue, maxValue);\n element.height(653-offset);\n} else {\n element.hide();\n}\n\nif (showHighCriticalScale && value !== null) {\n var highCriticalScale = ctx.properties.highCriticalScale;\n if (value >= highCriticalScale && value <= ctx.properties.maxValue) {\n element.fill(ctx.properties.activeCriticalScaleColor);\n } else {\n element.fill(ctx.properties.defaultCriticalScaleColor)\n }\n}", "actions": null }, { "tag": "highWarningScale", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showHighWarningScale = ctx.properties.showHighWarningScale;\nvar highWarningValue = ctx.properties.highWarningScale;\nif (showHighWarningScale) {\n element.show();\n var offset = calculateOffset(highWarningValue, minValue, maxValue);\n var childrenElement = element.children();\n childrenElement[0].height(653-offset);\n childrenElement[1].height(653-offset-1);\n} else {\n element.hide();\n}", - "actions": null - }, - { - "tag": "highWarningScaleBackground", - "stateRenderFunction": "var value = ctx.values.value;\nvar showHighWarningScale = ctx.properties.showHighWarningScale;\nvar showHighCriticalScale = ctx.properties.showHighCriticalScale;\n\nif (showHighWarningScale && value !== null) {\n var highCriticalScale = ctx.properties.highCriticalScale;\n if (!showHighCriticalScale) {\n highCriticalScale = ctx.properties.maxValue;\n }\n var highWarningScale = ctx.properties.highWarningScale;\n if (value < highCriticalScale && value >= highWarningScale) {\n element.fill(ctx.properties.activeWarningScaleColor);\n } else {\n element.fill(ctx.properties.defaultWarningScaleColor);\n }\n}", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n return offset;\n}\n\nvar value = ctx.values.value;\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showHighWarningScale = ctx.properties.showHighWarningScale;\nvar showHighCriticalScale = ctx.properties.showHighCriticalScale;\nvar highWarningValue = ctx.properties.highWarningScale;\nif (showHighWarningScale) {\n element.show();\n var offset = calculateOffset(highWarningValue, minValue, maxValue);\n element.height(653-offset);\n} else {\n element.hide();\n}\nif (showHighWarningScale && value !== null) {\n var highCriticalScale = ctx.properties.highCriticalScale;\n if (!showHighCriticalScale) {\n highCriticalScale = ctx.properties.maxValue;\n }\n var highWarningScale = ctx.properties.highWarningScale;\n if (value < highCriticalScale && value >= highWarningScale) {\n element.fill(ctx.properties.activeWarningScaleColor);\n } else {\n element.fill(ctx.properties.defaultWarningScaleColor);\n }\n}", "actions": null }, { @@ -44,22 +33,12 @@ }, { "tag": "lowCriticalScale", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showLowCriticalScale = ctx.properties.showLowCriticalScale;\nvar lowCriticalValue = ctx.properties.lowCriticalScale;\nif (showLowCriticalScale) {\n element.show();\n var offset = calculateOffset(lowCriticalValue, minValue, maxValue);\n var childrenElement = element.children();\n childrenElement[0].height(offset);\n childrenElement[1].height(offset-1);\n} else {\n element.hide();\n}", - "actions": null - }, - { - "tag": "lowCriticalScaleBackground", - "stateRenderFunction": "var value = ctx.values.value;\nvar showLowCriticalScale = ctx.properties.showLowCriticalScale;\nif (showLowCriticalScale && value !== null) {\n var lowCriticalScale = ctx.properties.lowCriticalScale;\n if (value <= lowCriticalScale && value >= ctx.properties.minValue) {\n element.fill(ctx.properties.activeCriticalScaleColor);\n } else {\n element.fill(ctx.properties.defaultCriticalScaleColor)\n }\n}", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar value = ctx.values.value;\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showLowCriticalScale = ctx.properties.showLowCriticalScale;\nvar lowCriticalScale = ctx.properties.lowCriticalScale;\nif (showLowCriticalScale) {\n element.show();\n var offset = calculateOffset(lowCriticalScale, minValue, maxValue);\n element.height(offset);\n} else {\n element.hide();\n}\n\nif (showLowCriticalScale && value !== null) {\n if (value <= lowCriticalScale && value >= ctx.properties.minValue) {\n element.fill(ctx.properties.activeCriticalScaleColor);\n } else {\n element.fill(ctx.properties.defaultCriticalScaleColor)\n }\n}", "actions": null }, { "tag": "lowWarningScale", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showLowWarningScale = ctx.properties.showLowWarningScale;\nvar lowWarningValue = ctx.properties.lowWarningScale;\nif (showLowWarningScale) {\n element.show();\n var offset = calculateOffset(lowWarningValue, minValue, maxValue);\n var childrenElement = element.children();\n childrenElement[0].height(offset);\n childrenElement[1].height(offset-1);\n} else {\n element.hide();\n}", - "actions": null - }, - { - "tag": "lowWarningScaleBackground", - "stateRenderFunction": "var value = ctx.values.value;\nvar showLowWarningScale = ctx.properties.showLowWarningScale;\nvar showLowCriticalScale = ctx.properties.showLowCriticalScale;\n\nif (showLowWarningScale && value !== null) {\n var lowCriticalScale = ctx.properties.lowCriticalScale;\n if (!showLowCriticalScale) {\n lowCriticalScale = ctx.properties.minValue;\n }\n var lowWarningScale = ctx.properties.lowWarningScale;\n if (value > lowCriticalScale && value <= lowWarningScale) {\n element.fill(ctx.properties.activeWarningScaleColor);\n } else {\n element.fill(ctx.properties.defaultWarningScaleColor);\n }\n}", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar value = ctx.values.value;\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showLowWarningScale = ctx.properties.showLowWarningScale;\nvar showLowCriticalScale = ctx.properties.showLowCriticalScale;\nvar lowWarningScale = ctx.properties.lowWarningScale;\nif (showLowWarningScale) {\n element.show();\n var offset = calculateOffset(lowWarningScale, minValue, maxValue);\n element.height(offset);\n} else {\n element.hide();\n}\n\nif (showLowWarningScale && value !== null) {\n var lowCriticalScale = ctx.properties.lowCriticalScale;\n if (!showLowCriticalScale) {\n lowCriticalScale = ctx.properties.minValue;\n }\n if (value > lowCriticalScale && value <= lowWarningScale) {\n element.fill(ctx.properties.activeWarningScaleColor);\n } else {\n element.fill(ctx.properties.defaultWarningScaleColor);\n }\n}", "actions": null }, { @@ -84,7 +63,7 @@ }, { "tag": "target", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showTarget = ctx.properties.showTarget;\nvar targetValue = ctx.values.targetValue;\n\nif (showTarget && targetValue !== null) {\n element.show();\n var offset = calculateOffset(targetValue, minValue, maxValue);\n element.transform({translateY: -(Math.min(Math.max(offset-17, 0), 617))});\n} else {\n element.hide();\n}\n\n", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showTarget = ctx.properties.showTarget;\nvar targetValue = ctx.values.targetValue;\n\nif (showTarget && targetValue !== null) {\n element.show();\n var offset = calculateOffset(targetValue, minValue, maxValue);\n element.transform({translateY: -Math.min(Math.max(offset-17, 0), 619)});\n} else {\n element.hide();\n}", "actions": null }, { @@ -99,7 +78,12 @@ }, { "tag": "value", - "stateRenderFunction": "if (ctx.properties.value !== null) {\n element.show();\n ctx.api.font(element, ctx.properties.valueFont, ctx.properties.valueColor);\n ctx.api.text(element, ctx.api.formatValue(ctx.values.value, ctx.properties.valueDecimals, null, ctx.properties.valueDecimals));\n} else {\n element.hide();\n}", + "stateRenderFunction": "if (ctx.properties.value) {\n element.show();\n ctx.api.font(element, ctx.properties.valueFont, ctx.properties.valueColor);\n ctx.api.text(element, ctx.api.formatValue(ctx.values.value, ctx.properties.valueDecimals, null, ctx.properties.valueDecimals));\n} else {\n element.hide();\n}", + "actions": null + }, + { + "tag": "valueArrowPosition", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar value = ctx.values.value;\n\nif (value !== null) {\n var offset = calculateOffset(value, minValue, maxValue);\n element.transform({translateY: -offset});\n}\n", "actions": null }, { @@ -108,8 +92,8 @@ "actions": null }, { - "tag": "valuePosition", - "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar value = ctx.values.value;\n\nif (value !== null) {\n var offset = calculateOffset(value, minValue, maxValue);\n element.transform({translateY: -offset});\n}\n", + "tag": "valueTextPositon", + "stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar value = ctx.values.value;\n\nif (value !== null) {\n var offset = calculateOffset(value, minValue, maxValue);\n element.transform({translateY: -offset});\n}\n", "actions": null } ], @@ -720,39 +704,20 @@ } ] } - Outdoor - °C - - - - - - - - - - - - - - - - - - - - - - 100 - 0 - - - - 26 - - - - - - - +Outdoor°C + + + + + + + 100 + 0 + + + + 26 + + + + \ No newline at end of file diff --git a/application/src/main/data/json/system/scada_symbols/small-cylindrical-tank.svg b/application/src/main/data/json/system/scada_symbols/small-cylindrical-tank.svg index 153994b2c7..85bad5d9e0 100644 --- a/application/src/main/data/json/system/scada_symbols/small-cylindrical-tank.svg +++ b/application/src/main/data/json/system/scada_symbols/small-cylindrical-tank.svg @@ -143,7 +143,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -152,16 +152,25 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, @@ -178,7 +187,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -187,16 +196,22 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, diff --git a/application/src/main/data/json/system/scada_symbols/small-left-motor-pump.svg b/application/src/main/data/json/system/scada_symbols/small-left-motor-pump.svg index 196f032511..21b9c1ba02 100644 --- a/application/src/main/data/json/system/scada_symbols/small-left-motor-pump.svg +++ b/application/src/main/data/json/system/scada_symbols/small-left-motor-pump.svg @@ -70,7 +70,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -85,6 +85,15 @@ "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", "dataToValueFunction": "/* Should return boolean value */\nreturn data;", @@ -105,7 +114,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -120,6 +129,12 @@ "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", "dataToValueFunction": "/* Should return boolean value */\nreturn data;", diff --git a/application/src/main/data/json/system/scada_symbols/small-right-motor-pump.svg b/application/src/main/data/json/system/scada_symbols/small-right-motor-pump.svg index 171fbdfca1..61c679e3fd 100644 --- a/application/src/main/data/json/system/scada_symbols/small-right-motor-pump.svg +++ b/application/src/main/data/json/system/scada_symbols/small-right-motor-pump.svg @@ -70,7 +70,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -85,6 +85,15 @@ "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", "dataToValueFunction": "/* Should return boolean value */\nreturn data;", @@ -105,7 +114,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -120,6 +129,12 @@ "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", "dataToValueFunction": "/* Should return boolean value */\nreturn data;", diff --git a/application/src/main/data/json/system/scada_symbols/small-spherical-tank.svg b/application/src/main/data/json/system/scada_symbols/small-spherical-tank.svg index 2d2a5ca76c..7e6e4fa8a6 100644 --- a/application/src/main/data/json/system/scada_symbols/small-spherical-tank.svg +++ b/application/src/main/data/json/system/scada_symbols/small-spherical-tank.svg @@ -143,7 +143,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -152,16 +152,25 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, @@ -178,7 +187,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -187,16 +196,22 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, diff --git a/application/src/main/data/json/system/scada_symbols/spherical-tank.svg b/application/src/main/data/json/system/scada_symbols/spherical-tank.svg index 2c4128bdeb..4184bcf593 100644 --- a/application/src/main/data/json/system/scada_symbols/spherical-tank.svg +++ b/application/src/main/data/json/system/scada_symbols/spherical-tank.svg @@ -143,7 +143,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -152,16 +152,25 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, @@ -178,7 +187,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -187,16 +196,22 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, diff --git a/application/src/main/data/json/system/scada_symbols/stand-cylindrical-tank.svg b/application/src/main/data/json/system/scada_symbols/stand-cylindrical-tank.svg index a1b8ad7072..2ad4ac9ec8 100644 --- a/application/src/main/data/json/system/scada_symbols/stand-cylindrical-tank.svg +++ b/application/src/main/data/json/system/scada_symbols/stand-cylindrical-tank.svg @@ -143,7 +143,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -152,16 +152,25 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, @@ -178,7 +187,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -187,16 +196,22 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, diff --git a/application/src/main/data/json/system/scada_symbols/stand-horizontal-tank.svg b/application/src/main/data/json/system/scada_symbols/stand-horizontal-tank.svg index 014ea43994..8c3745ec3d 100644 --- a/application/src/main/data/json/system/scada_symbols/stand-horizontal-tank.svg +++ b/application/src/main/data/json/system/scada_symbols/stand-horizontal-tank.svg @@ -143,7 +143,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -152,16 +152,25 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, @@ -178,7 +187,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -187,16 +196,22 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, diff --git a/application/src/main/data/json/system/scada_symbols/stand-vertical-short-tank.svg b/application/src/main/data/json/system/scada_symbols/stand-vertical-short-tank.svg index 92a1c6b8d5..43eac50d35 100644 --- a/application/src/main/data/json/system/scada_symbols/stand-vertical-short-tank.svg +++ b/application/src/main/data/json/system/scada_symbols/stand-vertical-short-tank.svg @@ -144,7 +144,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -153,16 +153,25 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, @@ -179,7 +188,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -188,16 +197,22 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, diff --git a/application/src/main/data/json/system/scada_symbols/stand-vertical-tank.svg b/application/src/main/data/json/system/scada_symbols/stand-vertical-tank.svg index 8b8038fde0..07c3ea050c 100644 --- a/application/src/main/data/json/system/scada_symbols/stand-vertical-tank.svg +++ b/application/src/main/data/json/system/scada_symbols/stand-vertical-tank.svg @@ -143,7 +143,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -152,16 +152,25 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, @@ -178,7 +187,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -187,16 +196,22 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, diff --git a/application/src/main/data/json/system/scada_symbols/top-flow-meter.svg b/application/src/main/data/json/system/scada_symbols/top-flow-meter.svg index 2162610cfc..619bb48ef8 100644 --- a/application/src/main/data/json/system/scada_symbols/top-flow-meter.svg +++ b/application/src/main/data/json/system/scada_symbols/top-flow-meter.svg @@ -120,7 +120,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -135,6 +135,15 @@ "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", "dataToValueFunction": "/* Should return boolean value */\nreturn data;", @@ -155,7 +164,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -170,6 +179,12 @@ "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", "dataToValueFunction": "/* Should return boolean value */\nreturn data;", diff --git a/application/src/main/data/json/system/scada_symbols/vertical-inline-flow-meter.svg b/application/src/main/data/json/system/scada_symbols/vertical-inline-flow-meter.svg index 4d5017a6c4..fff4819e1e 100644 --- a/application/src/main/data/json/system/scada_symbols/vertical-inline-flow-meter.svg +++ b/application/src/main/data/json/system/scada_symbols/vertical-inline-flow-meter.svg @@ -120,7 +120,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -135,6 +135,15 @@ "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", "dataToValueFunction": "/* Should return boolean value */\nreturn data;", @@ -155,7 +164,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -170,6 +179,12 @@ "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", "dataToValueFunction": "/* Should return boolean value */\nreturn data;", diff --git a/application/src/main/data/json/system/scada_symbols/vertical-short-tank.svg b/application/src/main/data/json/system/scada_symbols/vertical-short-tank.svg index 82d33a2e2c..d4358e8fa7 100644 --- a/application/src/main/data/json/system/scada_symbols/vertical-short-tank.svg +++ b/application/src/main/data/json/system/scada_symbols/vertical-short-tank.svg @@ -143,7 +143,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -152,16 +152,25 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, @@ -178,7 +187,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -187,16 +196,22 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, diff --git a/application/src/main/data/json/system/scada_symbols/vertical-tank-hp.svg b/application/src/main/data/json/system/scada_symbols/vertical-tank-hp.svg index f7b77082f2..4a7bbb3fdf 100644 --- a/application/src/main/data/json/system/scada_symbols/vertical-tank-hp.svg +++ b/application/src/main/data/json/system/scada_symbols/vertical-tank-hp.svg @@ -1,8 +1,9 @@ { "title": "HP Vertical tank", - "description": "Vertical tank", + "description": "Vertical tank with level visualizations.", "searchTags": [ - "vertical tank" + "vertical tank", + "high performance" ], "widgetSizeX": 3, "widgetSizeY": 5, @@ -121,16 +122,16 @@ }, { "id": "warning", - "name": "{i18n:scada.symbol.warning-state}", + "name": "{i18n:scada.symbol.warning}", "hint": "{i18n:scada.symbol.warning-state-hint}", - "group": null, + "group": "{i18n:scada.symbol.warning-state}", "type": "value", "valueType": "BOOLEAN", "trueLabel": null, "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -139,33 +140,62 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, + { + "id": "warningClick", + "name": "{i18n:scada.symbol.warning-click}", + "hint": "{i18n:scada.symbol.on-click-hint}", + "group": "{i18n:scada.symbol.warning-state}", + "type": "widgetAction", + "valueType": "BOOLEAN", + "trueLabel": null, + "falseLabel": null, + "stateLabel": null, + "defaultGetValueSettings": null, + "defaultSetValueSettings": null, + "defaultWidgetActionSettings": { + "type": "doNothing", + "targetDashboardStateId": null, + "openRightLayout": false, + "setEntityId": false, + "stateEntityParamName": null + } + }, { "id": "critical", - "name": "{i18n:scada.symbol.critical-state}", + "name": "{i18n:scada.symbol.critical}", "hint": "{i18n:scada.symbol.critical-state-hint}", - "group": null, + "group": "{i18n:scada.symbol.critical-state}", "type": "value", "valueType": "BOOLEAN", "trueLabel": null, "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -174,21 +204,47 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, + { + "id": "criticalClick", + "name": "{i18n:scada.symbol.critical-click}", + "hint": "{i18n:scada.symbol.on-click-hint}", + "group": "{i18n:scada.symbol.critical-state}", + "type": "widgetAction", + "valueType": "BOOLEAN", + "trueLabel": null, + "falseLabel": null, + "stateLabel": null, + "defaultGetValueSettings": null, + "defaultSetValueSettings": null, + "defaultWidgetActionSettings": { + "type": "doNothing", + "targetDashboardStateId": null, + "openRightLayout": false, + "setEntityId": false, + "stateEntityParamName": null + } + }, { "id": "criticalAnimation", "name": "{i18n:scada.symbol.critical-state-animation}", @@ -224,46 +280,6 @@ "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, - { - "id": "warningClick", - "name": "{i18n:scada.symbol.warning-click}", - "hint": "{i18n:scada.symbol.on-click-hint}", - "group": null, - "type": "widgetAction", - "valueType": "BOOLEAN", - "trueLabel": null, - "falseLabel": null, - "stateLabel": null, - "defaultGetValueSettings": null, - "defaultSetValueSettings": null, - "defaultWidgetActionSettings": { - "type": "doNothing", - "targetDashboardStateId": null, - "openRightLayout": false, - "setEntityId": false, - "stateEntityParamName": null - } - }, - { - "id": "criticalClick", - "name": "{i18n:scada.symbol.critical-click}", - "hint": "{i18n:scada.symbol.on-click-hint}", - "group": null, - "type": "widgetAction", - "valueType": "BOOLEAN", - "trueLabel": null, - "falseLabel": null, - "stateLabel": null, - "defaultGetValueSettings": null, - "defaultSetValueSettings": null, - "defaultWidgetActionSettings": { - "type": "doNothing", - "targetDashboardStateId": null, - "openRightLayout": false, - "setEntityId": false, - "stateEntityParamName": null - } - }, { "id": "click", "name": "{i18n:scada.symbol.on-click}", @@ -341,7 +357,7 @@ "default": 10, "required": null, "subLabel": "{i18n:scada.symbol.intervals}", - "divider": true, + "divider": false, "fieldSuffix": null, "disableOnProperty": "scale", "rowClass": "", @@ -374,7 +390,7 @@ }, { "id": "majorColor", - "name": "{i18n:scada.symbol.major-ticks-color}", + "name": "{i18n:scada.symbol.major-ticks}", "type": "color", "default": "#00000061", "required": null, @@ -406,7 +422,7 @@ }, { "id": "minorColor", - "name": "{i18n:scada.symbol.minor-ticks-color}", + "name": "{i18n:scada.symbol.minor-ticks}", "type": "color", "default": "#0000001F", "required": null, @@ -422,12 +438,12 @@ }, { "id": "warningColor", - "name": "{i18n:scada.symbol.warning-color}", + "name": "{i18n:scada.symbol.alarm-colors}", "type": "color", "default": "#FAA405", "required": null, - "subLabel": null, - "divider": null, + "subLabel": "{i18n:scada.symbol.warning}", + "divider": true, "fieldSuffix": null, "disableOnProperty": null, "rowClass": "", @@ -438,11 +454,11 @@ }, { "id": "criticalColor", - "name": "{i18n:scada.symbol.critical-color}", + "name": "{i18n:scada.symbol.alarm-colors}", "type": "color", "default": "#D12730", "required": null, - "subLabel": null, + "subLabel": "{i18n:scada.symbol.critical}", "divider": null, "fieldSuffix": null, "disableOnProperty": null, diff --git a/application/src/main/data/json/system/scada_symbols/vertical-tank.svg b/application/src/main/data/json/system/scada_symbols/vertical-tank.svg index 207a406a93..de7f907e76 100644 --- a/application/src/main/data/json/system/scada_symbols/vertical-tank.svg +++ b/application/src/main/data/json/system/scada_symbols/vertical-tank.svg @@ -142,7 +142,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -151,16 +151,25 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, @@ -177,7 +186,7 @@ "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -186,16 +195,22 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, diff --git a/application/src/main/data/json/system/scada_symbols/vertical-valve-hp.svg b/application/src/main/data/json/system/scada_symbols/vertical-valve-hp.svg index 370bcb38ba..200e93cb95 100644 --- a/application/src/main/data/json/system/scada_symbols/vertical-valve-hp.svg +++ b/application/src/main/data/json/system/scada_symbols/vertical-valve-hp.svg @@ -1,9 +1,9 @@ -<svg width="200" height="200" fill="none" version="1.1" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg" xmlns:tb="https://thingsboard.io/svg"> - <tb:metadata><![CDATA[{ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:tb="https://thingsboard.io/svg" width="200" height="200" fill="none" version="1.1" viewBox="0 0 200 200"><tb:metadata xmlns=""><![CDATA[{ "title": "HP Vertical valve", "description": "Vertical valve with various states.", "searchTags": [ - "valve" + "valve", + "high performance" ], "widgetSizeX": 1, "widgetSizeY": 1, @@ -147,16 +147,16 @@ }, { "id": "warning", - "name": "{i18n:scada.symbol.warning-state}", + "name": "{i18n:scada.symbol.warning}", "hint": "{i18n:scada.symbol.warning-state-hint}", - "group": null, + "group": "{i18n:scada.symbol.warning-state}", "type": "value", "valueType": "BOOLEAN", "trueLabel": null, "falseLabel": null, "stateLabel": "{i18n:scada.symbol.warning}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -165,33 +165,62 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "MAJOR", + "MINOR", + "WARNING", + "INDETERMINATE" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, + { + "id": "warningClick", + "name": "{i18n:scada.symbol.warning-click}", + "hint": "{i18n:scada.symbol.on-click-hint}", + "group": "{i18n:scada.symbol.warning-state}", + "type": "widgetAction", + "valueType": "BOOLEAN", + "trueLabel": null, + "falseLabel": null, + "stateLabel": null, + "defaultGetValueSettings": null, + "defaultSetValueSettings": null, + "defaultWidgetActionSettings": { + "type": "doNothing", + "targetDashboardStateId": null, + "openRightLayout": false, + "setEntityId": false, + "stateEntityParamName": null + } + }, { "id": "critical", - "name": "{i18n:scada.symbol.critical-state}", + "name": "{i18n:scada.symbol.critical}", "hint": "{i18n:scada.symbol.critical-state-hint}", - "group": null, + "group": "{i18n:scada.symbol.critical-state}", "type": "value", "valueType": "BOOLEAN", "trueLabel": null, "falseLabel": null, "stateLabel": "{i18n:scada.symbol.critical}", "defaultGetValueSettings": { - "action": "DO_NOTHING", + "action": "GET_ALARM_STATUS", "defaultValue": false, "executeRpc": { "method": "getState", @@ -200,21 +229,47 @@ "persistentPollingInterval": 1000 }, "getAttribute": { - "key": "state", - "scope": null + "scope": null, + "key": "state" }, "getTimeSeries": { "key": "state" }, + "getAlarmStatus": { + "severityList": [ + "CRITICAL" + ], + "typeList": null + }, "dataToValue": { "type": "NONE", - "compareToValue": true, - "dataToValueFunction": "/* Should return boolean value */\nreturn data;" + "dataToValueFunction": "/* Should return boolean value */\nreturn data;", + "compareToValue": true } }, "defaultSetValueSettings": null, "defaultWidgetActionSettings": null }, + { + "id": "criticalClick", + "name": "{i18n:scada.symbol.critical-click}", + "hint": "{i18n:scada.symbol.on-click-hint}", + "group": "{i18n:scada.symbol.critical-state}", + "type": "widgetAction", + "valueType": "BOOLEAN", + "trueLabel": null, + "falseLabel": null, + "stateLabel": null, + "defaultGetValueSettings": null, + "defaultSetValueSettings": null, + "defaultWidgetActionSettings": { + "type": "doNothing", + "targetDashboardStateId": null, + "openRightLayout": false, + "setEntityId": false, + "stateEntityParamName": null + } + }, { "id": "criticalAnimation", "name": "{i18n:scada.symbol.critical-state-animation}", @@ -249,57 +304,17 @@ }, "defaultSetValueSettings": null, "defaultWidgetActionSettings": null - }, - { - "id": "warningClick", - "name": "{i18n:scada.symbol.warning-click}", - "hint": "{i18n:scada.symbol.on-click-hint}", - "group": null, - "type": "widgetAction", - "valueType": "BOOLEAN", - "trueLabel": null, - "falseLabel": null, - "stateLabel": null, - "defaultGetValueSettings": null, - "defaultSetValueSettings": null, - "defaultWidgetActionSettings": { - "type": "doNothing", - "targetDashboardStateId": null, - "openRightLayout": false, - "setEntityId": false, - "stateEntityParamName": null - } - }, - { - "id": "criticalClick", - "name": "{i18n:scada.symbol.critical-click}", - "hint": "{i18n:scada.symbol.on-click-hint}", - "group": null, - "type": "widgetAction", - "valueType": "BOOLEAN", - "trueLabel": null, - "falseLabel": null, - "stateLabel": null, - "defaultGetValueSettings": null, - "defaultSetValueSettings": null, - "defaultWidgetActionSettings": { - "type": "doNothing", - "targetDashboardStateId": null, - "openRightLayout": false, - "setEntityId": false, - "stateEntityParamName": null - } } ], "properties": [ { "id": "openedColor", - "name": "{i18n:scada.symbol.opened-color}", + "name": "{i18n:scada.symbol.colors}", "type": "color", "default": "#FFFFFF", "required": null, - "subLabel": null, - "divider": null, + "subLabel": "{i18n:scada.symbol.opened}", + "divider": true, "fieldSuffix": null, "disableOnProperty": null, "rowClass": "", @@ -310,11 +325,11 @@ }, { "id": "closedColor", - "name": "{i18n:scada.symbol.closed-color}", + "name": "{i18n:scada.symbol.colors}", "type": "color", "default": "#666666", "required": null, - "subLabel": null, + "subLabel": "{i18n:scada.symbol.closed-mode}", "divider": null, "fieldSuffix": null, "disableOnProperty": null, @@ -326,12 +341,12 @@ }, { "id": "warningColor", - "name": "{i18n:scada.symbol.warning-color}", + "name": "{i18n:scada.symbol.alarm-colors}", "type": "color", "default": "#FAA405", "required": null, - "subLabel": null, - "divider": null, + "subLabel": "{i18n:scada.symbol.warning}", + "divider": true, "fieldSuffix": null, "disableOnProperty": null, "rowClass": "", @@ -342,11 +357,11 @@ }, { "id": "criticalColor", - "name": "{i18n:scada.symbol.critical-color}", + "name": "{i18n:scada.symbol.alarm-colors}", "type": "color", "default": "#D12730", "required": null, - "subLabel": null, + "subLabel": "{i18n:scada.symbol.critical}", "divider": null, "fieldSuffix": null, "disableOnProperty": null, @@ -358,26 +373,20 @@ } ] } - - + - - - - - + - - + - + \ No newline at end of file diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index 75442e540c..6f2bf04ef6 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -3162,7 +3162,7 @@ "critical": "Critical", "critical-click": "Critical click", "critical-state-hint": "Indicates whether component is in critical state.", - "critical-state-animation": "Critical state animation", + "critical-state-animation": "Alarm state animation", "critical-state-animation-hint": "Whether to enable blinking animation when component is in critical state.", "animation": "Animation", "broken": "Broken", @@ -3187,6 +3187,7 @@ "top-right-connector": "Top right connector", "running-color": "Running color", "stopped-color": "Stopped color", + "stopped": "Stopped", "warning-color": "Warning color", "critical-color": "Critical color", "opened": "Opened", @@ -3286,7 +3287,9 @@ "low-critical-state": "Low Critical state", "show-low-critical-scale": "Show Low Critical state", "low-critical-scale": "Low Critical state", - "low-critical-state-hint": "Double value indicates a low critical range up to the min value scale." + "low-critical-state-hint": "Double value indicates a low critical range up to the min value scale.", + "colors": "Colors", + "alarm-colors": "Alarm colors" } }, "item": {