Opps my mistake, I found out I should put "COM5" in Port.

Opps my mistake, I found out I should put "COM5" in Port.

I am trying to setup a Mango DataSource with Modbus Serial in Mango Enterprise 3.1.1. The USB adapter is used and it is detected as COM5 in OS (Windows 7). Yet in the datasource, when I tried Modbus Read Data - it shows "Scanner could not be started. No comm port"


Hi phildunlap, I was using version 3.1.1. I am now downloading version 3.2.
Hi phildunlap, is there a way to pass the timestamp from UI to scripting data point? Currently it seems to me that at least 2 meta data points will be required to key in the value and timestamp then referred from scripting datapoint to call .set(value,timestamp) - resulting in a total of 3 datapoints.
Hi Will, I am using advancedComponent 3.1.3 and check for upgrades gives me following response.
Modules available for upgrade
All installed modules are up to date
Modules available for installation
No new modules to install
{"data":"","status":500,"config":{"method":"GET","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","url":"/rest/v1/modules/upgrades-available","headers":{"Accept":"application/json, text/plain, */*","X-Requested-With":"XMLHttpRequest","X-XSRF-TOKEN":"a401346f-29a7-49b7-80ac-3e6eaeabb93d"},"cached":false,"timeout":30000},"statusText":"Server Error"}
I just noted that there is the same array error is on the UI's watch list application that comes with the demo version. So it is just that charts are not rendering in my case.
@will-geller said in Notes on specific datapoint / Annotation on specific datapoint / Annotation on chart:
Could I see the output of page.watchList. Are you sure you have checked points on the watchlist and then clicked save. When you open up that watchlist does a chart display at the bottom of the page?
Dear Will, the watch list is displayed, and charts can be seen. In above reply, I also uploaded the output from {{thisWatchlist}} so that you can help to review in the case there is any missing configuration.
<ma-watch-list-get watch-list-xid="WL_TESTWL" ng-model="thisWatchList" on-points-change="points = $points"></ma-watch-list-get>
{{thisWatchlist}}
<ma-annotate-chart flex points="points" watch-list="thisWatchList" export="true" to="dateBar.to" from="dateBar.from" rollup-type="dateBar.rollupType" rollup-interval-number="dateBar.rollupIntervals" rollup-interval-period="dateBar.rollupIntervalPeriod" chart-height="400px"></ma-annotate-chart>
```
Dear Will, I was struggling to plot out charts using <ma-watch-list-chart> and <ma-annotate-chart> and no charts is rendered. Both in Chrome and Firefox, I noted that there is an error: Following is the error message from Chrome:
TypeError: Cannot read property 'chartConfig' of null
at AnnotateChartController.$ctrl.filterPoints (http://localhost:8080/modules/advancedComponents/web/directives/annotateChart/annotateChart.js?v=1501676475:499:45)
at AnnotateChartController.$ctrl.$onChanges (http://localhost:8080/modules/advancedComponents/web/directives/annotateChart/annotateChart.js?v=1501676475:491:23)
at Array.h (http://localhost:8080/modules/mangoUI/web/vendor/angular/angular.js?v=1501676475:85:251)
at http://localhost:8080/modules/mangoUI/web/vendor/angular/angular.js?v=1501676475:59:144
at m.$eval (http://localhost:8080/modules/mangoUI/web/vendor/angular/angular.js?v=1501676475:148:347)
at m.$apply (http://localhost:8080/modules/mangoUI/web/vendor/angular/angular.js?v=1501676475:149:52)
at Array.P (http://localhost:8080/modules/mangoUI/web/vendor/angular/angular.js?v=1501676475:59:80)
at m.$digest (http://localhost:8080/modules/mangoUI/web/vendor/angular/angular.js?v=1501676475:147:83)
at m.$apply (http://localhost:8080/modules/mangoUI/web/vendor/angular/angular.js?v=1501676475:149:113)
at http://localhost:8080/modules/mangoUI/web/vendor/angular/angular.js?v=1501676475:162:3
All my modules were just updated. I can still plot the chart if I get each of the points using point-xid from watchlist and plot with <ma-serial-chart>. My watch list is a static watch list with a list of points and is as follow:
[
{
"enabled":true,
"templateXid":"Power",
"loggingProperties":{
"tolerance":0,
"discardExtremeValues":false,
"discardLowLimit":-1.7976931348623157e+308,
"discardHighLimit":1.7976931348623157e+308,
"loggingType":"INTERVAL",
"intervalLoggingType":"AVERAGE",
"intervalLoggingPeriod":{
"periods":3,
"type":"SECONDS"
},
"overrideIntervalLoggingSamples":false,
"intervalLoggingSampleWindowSize":0,
"cacheSize":1
},
"textRenderer":{
"useUnitAsSuffix":true,
"unit":"kW",
"renderedUnit":"kW",
"format":"0.00",
"suffix":"",
"type":"textRendererAnalog"
},
"chartRenderer":{
"timePeriod":{
"periods":1,
"type":"DAYS"
},
"type":"chartRendererImage"
},
"modelType":"DATA_POINT",
"validationMessages":[
],
"id":212,
"dataSourceId":82,
"setPermission":"superadmin",
"chartColour":"",
"rollup":"NONE",
"plotType":"SPLINE",
"purgeOverride":false,
"purgePeriod":{
"periods":1,
"type":"YEARS"
},
"pointLocator":{
"offset":0,
"values":[
],
"max":120,
"min":0.1,
"period":0,
"attractionPointXid":"internal_mango_num_active_user_sessions",
"maxChange":0.2,
"change":0,
"amplitude":0,
"volatility":0,
"startValue":"101",
"roll":false,
"modelType":"PL.VIRTUAL",
"dataType":"NUMERIC",
"changeType":"BROWNIAN",
"settable":false,
"relinquishable":false
},
"readPermission":"user",
"pointFolderId":2,
"unit":"kW",
"dataSourceXid":"DS_Chiller1_VDS",
"renderedUnit":"kW",
"integralUnit":"kW·s",
"deviceName":"Chiller1",
"useIntegralUnit":false,
"useRenderedUnit":false,
"dataSourceName":"Chiller1_VDS",
"name":"ActivePower",
"xid":"DP_Chiller1_ActivePower"
},
{
"enabled":true,
"templateXid":"Power",
"loggingProperties":{
"tolerance":0,
"discardExtremeValues":false,
"discardLowLimit":-1.7976931348623157e+308,
"discardHighLimit":1.7976931348623157e+308,
"loggingType":"INTERVAL",
"intervalLoggingType":"AVERAGE",
"intervalLoggingPeriod":{
"periods":3,
"type":"SECONDS"
},
"overrideIntervalLoggingSamples":false,
"intervalLoggingSampleWindowSize":0,
"cacheSize":1
},
"textRenderer":{
"useUnitAsSuffix":true,
"unit":"kW",
"renderedUnit":"kW",
"format":"0.00",
"suffix":"",
"type":"textRendererAnalog"
},
"chartRenderer":{
"timePeriod":{
"periods":1,
"type":"DAYS"
},
"type":"chartRendererImage"
},
"modelType":"DATA_POINT",
"validationMessages":[
],
"id":213,
"dataSourceId":83,
"setPermission":"superadmin",
"chartColour":"",
"rollup":"NONE",
"plotType":"SPLINE",
"purgeOverride":false,
"purgePeriod":{
"periods":1,
"type":"YEARS"
},
"pointLocator":{
"offset":0,
"values":[
],
"max":120,
"min":0.1,
"period":0,
"attractionPointXid":"internal_mango_num_active_user_sessions",
"maxChange":0.2,
"change":0,
"amplitude":0,
"volatility":0,
"startValue":"101",
"roll":false,
"modelType":"PL.VIRTUAL",
"dataType":"NUMERIC",
"changeType":"BROWNIAN",
"settable":false,
"relinquishable":false
},
"readPermission":"user",
"pointFolderId":2,
"unit":"kW",
"dataSourceXid":"DS_Chiller2_VDS",
"renderedUnit":"kW",
"integralUnit":"kW·s",
"deviceName":"Chiller2",
"useIntegralUnit":false,
"useRenderedUnit":false,
"dataSourceName":"Chiller2_VDS",
"name":"ActivePower",
"xid":"DP_Chiller2_ActivePower"
},
{
"enabled":true,
"templateXid":"Power",
"loggingProperties":{
"tolerance":0,
"discardExtremeValues":false,
"discardLowLimit":-1.7976931348623157e+308,
"discardHighLimit":1.7976931348623157e+308,
"loggingType":"INTERVAL",
"intervalLoggingType":"AVERAGE",
"intervalLoggingPeriod":{
"periods":3,
"type":"SECONDS"
},
"overrideIntervalLoggingSamples":false,
"intervalLoggingSampleWindowSize":0,
"cacheSize":1
},
"textRenderer":{
"useUnitAsSuffix":true,
"unit":"kW",
"renderedUnit":"kW",
"format":"0.00",
"suffix":"",
"type":"textRendererAnalog"
},
"chartRenderer":{
"timePeriod":{
"periods":1,
"type":"DAYS"
},
"type":"chartRendererImage"
},
"modelType":"DATA_POINT",
"validationMessages":[
],
"id":214,
"dataSourceId":84,
"setPermission":"superadmin",
"chartColour":"",
"rollup":"NONE",
"plotType":"SPLINE",
"purgeOverride":false,
"purgePeriod":{
"periods":1,
"type":"YEARS"
},
"pointLocator":{
"offset":0,
"values":[
],
"max":120,
"min":0.1,
"period":0,
"attractionPointXid":"internal_mango_num_active_user_sessions",
"maxChange":0.2,
"change":0,
"amplitude":0,
"volatility":0,
"startValue":"88",
"roll":false,
"modelType":"PL.VIRTUAL",
"dataType":"NUMERIC",
"changeType":"BROWNIAN",
"settable":false,
"relinquishable":false
},
"readPermission":"user",
"pointFolderId":2,
"unit":"kW",
"dataSourceXid":"DS_Chiller3_VDS",
"renderedUnit":"kW",
"integralUnit":"kW·s",
"deviceName":"Chiller3",
"useIntegralUnit":false,
"useRenderedUnit":false,
"dataSourceName":"Chiller3_VDS",
"name":"ActivePower",
"xid":"DP_Chiller3_ActivePower"
},
{
"enabled":true,
"templateXid":"Power",
"loggingProperties":{
"tolerance":0,
"discardExtremeValues":false,
"discardLowLimit":-1.7976931348623157e+308,
"discardHighLimit":1.7976931348623157e+308,
"loggingType":"INTERVAL",
"intervalLoggingType":"AVERAGE",
"intervalLoggingPeriod":{
"periods":3,
"type":"SECONDS"
},
"overrideIntervalLoggingSamples":false,
"intervalLoggingSampleWindowSize":0,
"cacheSize":1
},
"textRenderer":{
"useUnitAsSuffix":true,
"unit":"kW",
"renderedUnit":"kW",
"format":"0.00",
"suffix":"",
"type":"textRendererAnalog"
},
"chartRenderer":{
"timePeriod":{
"periods":1,
"type":"DAYS"
},
"type":"chartRendererImage"
},
"modelType":"DATA_POINT",
"validationMessages":[
],
"id":215,
"dataSourceId":85,
"setPermission":"superadmin",
"chartColour":"",
"rollup":"NONE",
"plotType":"SPLINE",
"purgeOverride":false,
"purgePeriod":{
"periods":1,
"type":"YEARS"
},
"pointLocator":{
"offset":0,
"values":[
],
"max":120,
"min":0.1,
"period":0,
"attractionPointXid":"internal_mango_num_active_user_sessions",
"maxChange":0.2,
"change":0,
"amplitude":0,
"volatility":0,
"startValue":"22",
"roll":false,
"modelType":"PL.VIRTUAL",
"dataType":"NUMERIC",
"changeType":"BROWNIAN",
"settable":false,
"relinquishable":false
},
"readPermission":"user",
"pointFolderId":2,
"unit":"kW",
"dataSourceXid":"DS_Chiller4_VDS",
"renderedUnit":"kW",
"integralUnit":"kW·s",
"deviceName":"Chiller4",
"useIntegralUnit":false,
"useRenderedUnit":false,
"dataSourceName":"Chiller4_VDS",
"name":"ActivePower",
"xid":"DP_Chiller4_ActivePower"
},
{
"enabled":true,
"templateXid":"Power",
"loggingProperties":{
"tolerance":0,
"discardExtremeValues":false,
"discardLowLimit":-1.7976931348623157e+308,
"discardHighLimit":1.7976931348623157e+308,
"loggingType":"INTERVAL",
"intervalLoggingType":"AVERAGE",
"intervalLoggingPeriod":{
"periods":3,
"type":"SECONDS"
},
"overrideIntervalLoggingSamples":false,
"intervalLoggingSampleWindowSize":0,
"cacheSize":1
},
"textRenderer":{
"useUnitAsSuffix":true,
"unit":"kW",
"renderedUnit":"kW",
"format":"0.00",
"suffix":"",
"type":"textRendererAnalog"
},
"chartRenderer":{
"timePeriod":{
"periods":1,
"type":"DAYS"
},
"type":"chartRendererImage"
},
"modelType":"DATA_POINT",
"validationMessages":[
],
"id":216,
"dataSourceId":86,
"setPermission":"superadmin",
"chartColour":"",
"rollup":"NONE",
"plotType":"SPLINE",
"purgeOverride":false,
"purgePeriod":{
"periods":1,
"type":"YEARS"
},
"pointLocator":{
"offset":0,
"values":[
],
"max":120,
"min":0.1,
"period":0,
"attractionPointXid":"internal_mango_num_active_user_sessions",
"maxChange":0.2,
"change":0,
"amplitude":0,
"volatility":0,
"startValue":"55",
"roll":false,
"modelType":"PL.VIRTUAL",
"dataType":"NUMERIC",
"changeType":"BROWNIAN",
"settable":false,
"relinquishable":false
},
"readPermission":"user",
"pointFolderId":2,
"unit":"kW",
"dataSourceXid":"DS_Chiller5_VDS",
"renderedUnit":"kW",
"integralUnit":"kW·s",
"deviceName":"Chiller5",
"useIntegralUnit":false,
"useRenderedUnit":false,
"dataSourceName":"Chiller5_VDS",
"name":"ActivePower",
"xid":"DP_Chiller5_ActivePower"
}
]
Re: how to handle missing datapoints
Dear Phil, is there a way to edit the datapoint value at specific timestamp, or set the value of any datapoint at specific timestamp?
Hi Jared, I happened to look back into this today and I manage to get the kind of annotation to be exported using a extra alphanumeric datapoint. When the datapoint is charted together with the numeric datapoint, the alphanumeric that I set to the data point will appear on "CSV" file export (of course it won't appear on chart, it only appears on legends when the cursor is on specific time). Only draw back is if the numeric data is updating fast, the alphanumeric data may have been saved with a different time stamp.
I am now looking for saving the data back with specific time stamp.
Jared, Thanks for your response. I will try to find a work around so that I can make a demo to the end user.
@georgestefan said in kWh Consumption:
Hello, I have a point with instant power for a pump, in kW, is there a way to calculate total kWh consumption?
I got the following from Energy Dashboard Demo;
return my.value + (InstantPower.past(MINUTE,1).average/60);
Dear Jared, I just need to annotate on the point value and not necessarily from the chart. It seems that annotation on pointvalue is available somewhere as I see in the datapoint details view on earlier User Interface and POINTVALUEANNOTATIONS table in the database as well. Where can I annotate the pointvalue?
[0_1500956175801_CcKMNUqiJY6TfpKB3[1]](Uploading 100%)
https://photos.app.goo.gl/CcKMNUqiJY6TfpKB3
Looking for a way to be able to download csv file which will have following columns: TimeStamp, Value, RenderedValue, Comment. Not sure why the picture uploaded were not displayed in the earlier post in the forum.
Currently annotate options is available to the chart as a graphic object.

After annotation, we can either save as PNG, JPG, SVG or PDF. Is there a way to annotation text to the specific data point, and can be downloaded as text (CSV, XLSX)?

I also was thinking we may be able to add a user comment with reference to timestamp of the datapoint and join the tables while query to download as CSV?
@phildunlap said in pointquery from a watchlist by watchlistname and do calculation:
{{points | maSum:'value'}}
Thanks phildunlap, that's very efficient in a few line.
{{points | maSum:'value'}}
helps. I will explore the link you provided as well. Thanks for your support.
@morris said in pointquery from a watchlist by watchlistname and do calculation:
total = 0"
When I change
<td ng-init="$parent.total = $parent.total + point.value">
{{point.value}}</td>
to
<td ng-init="$parent.total = $parent.total + 1">
{{point.value}}</td>
I can get the points.length.
@phildunlap said in pointquery from a watchlist by watchlistname and do calculation:
<ma-watch-list-get watch-list-xid="WL_53fe36dd-0947-4b65-adc8-e19cbf9d7cdc" ng-model="getWatchlistPoints" on-points-change="points = $points"></ma-watch-list-get>
{{points}}
Hi phildunlap
Thanks, it returns all the points in the watchlist. Is there a way to sum up their values? I was trying the following code without success.
<ma-watch-list-get
watch-list-xid="WL_TotalPower"
ng-model="getWatchlistPoints"
on-points-change="points = $points">
</ma-watch-list-get>
<table>
<tbody ng-init="total = 0">
<tr ng-repeat="point in points">
<td>{{point.deviceName }}</td>
<td>{{point.xid}} </td>
<td>{{point.name}}</td>
<td><ma-get-point-value point="point"></ma-point-value></td>
<td ng-init="$parent.total = $parent.total + point.value">
{{point.value}}</td>
</tr>
<tr>
<td>Total</td>
<td></td>
<td>{{ total }}</td>
</tr>
</tbody>
</table>
Hi phildunlap, may you have a look on my other post? pointquery from a watchlist by watchlistname and do calculation