thingsboard-aplcache

Details

diff --git a/ui/src/app/widget/lib/canvas-digital-gauge.js b/ui/src/app/widget/lib/canvas-digital-gauge.js
index 8e6db04..283a426 100644
--- a/ui/src/app/widget/lib/canvas-digital-gauge.js
+++ b/ui/src/app/widget/lib/canvas-digital-gauge.js
@@ -70,6 +70,10 @@ export default class TbCanvasDigitalGauge {
             (settings.title && settings.title.length > 0 ?
                 settings.title : dataKey.label) : '');
 
+        if (!this.localSettings.unitTitle && this.localSettings.showTimestamp) {
+            this.localSettings.unitTitle = ' ';
+        }
+
         this.localSettings.titleFont = {};
         var settingsTitleFont = settings.titleFont;
         if (!settingsTitleFont) {
@@ -206,6 +210,7 @@ export default class TbCanvasDigitalGauge {
                 var value = tvPair[1];
                 if(value !== this.gauge.value) {
                     this.gauge.value = value;
+                    this.gauge._value = value;
                 } else if (this.localSettings.showTimestamp && this.gauge.timestamp != timestamp) {
                     this.gauge.timestamp = timestamp;
                 }
diff --git a/ui/src/app/widget/lib/CanvasDigitalGauge.js b/ui/src/app/widget/lib/CanvasDigitalGauge.js
index 0166e91..ee8b0ed 100644
--- a/ui/src/app/widget/lib/CanvasDigitalGauge.js
+++ b/ui/src/app/widget/lib/CanvasDigitalGauge.js
@@ -204,8 +204,13 @@ export default class CanvasDigitalGauge extends canvasGauges.BaseGauge {
             }
 
             var valueChanged = false;
-
-            if (!this.elementValueClone.initialized || this.elementValueClone.renderedValue !== this.value || (options.showTimestamp && this.elementValueClone.renderedTimestamp !== this.timestamp)) {
+            if (!this.elementValueClone.initialized || angular.isDefined(this._value) && this.elementValueClone.renderedValue !== this._value || (options.showTimestamp && this.elementValueClone.renderedTimestamp !== this.timestamp)) {
+                if (angular.isDefined(this._value)) {
+                    this.elementValueClone.renderedValue = this._value;
+                }
+                if (angular.isUndefined(this.elementValueClone.renderedValue)) {
+                    this.elementValueClone.renderedValue = options.minValue;
+                }
                 let context = this.contextValueClone;
                 // clear the cache
                 context.clearRect(x, y, w, h);
@@ -214,7 +219,7 @@ export default class CanvasDigitalGauge extends canvasGauges.BaseGauge {
                 context.drawImage(canvas.elementClone, x, y, w, h);
                 context.save();
 
-                drawDigitalValue(context, options, this.value);
+                drawDigitalValue(context, options, this.elementValueClone.renderedValue);
 
                 if (options.showTimestamp) {
                     drawDigitalLabel(context, options);
@@ -222,7 +227,6 @@ export default class CanvasDigitalGauge extends canvasGauges.BaseGauge {
                 }
 
                 this.elementValueClone.initialized = true;
-                this.elementValueClone.renderedValue = this.value;
 
                 valueChanged = true;
             }