| 
		
	
	
	
		
	Posts: 169 
	Threads: 58 
	Joined: Oct 2017
	
 Reputation: 
0 
	
	
		Hi all,
 I saw that a lot of scripts allowed to process trends, but I couldn't find anything on the following subject:
 is it possible to create a curve in LM from an xml file, created independently of the controller objects?
 
 My need: draw a trend whose data is in an xml file created outside the LM (therefore not in its SQL database).
 
 If it's possible : what is the xml data format interpreted by the LM ?
 
 Thank's in advance for your answer.
 Take care of you.
 
		
	 
	
	
	
		
	Posts: 1807 
	Threads: 7 
	Joined: Jul 2015
	
 Reputation: 
121 
	
	
		You could read the xml from script, add the values from the .xml to objects and attach trends to those objects ..
	 
		
	 
	
	
	
		
	Posts: 8410 
	Threads: 45 
	Joined: Jun 2015
	
 Reputation: 
481 
	
	
		Can you post an example of this XML file?
	 
		
	 
	
	
	
		
	Posts: 169 
	Threads: 58 
	Joined: Oct 2017
	
 Reputation: 
0 
	
	
		Hi Admin 
the data can be in csv or xml format. 
These are measurements taken every 12 seconds : how many values can we store at most for an object ? 
 
Have a good week.
 Code:    <Row><Cell><Data ss:Type="String"> 11-05-20 16:01:06</Data></Cell>
 <Cell><Data ss:Type="Number">0.51</Data></Cell>
 </Row>
 <Row>
 <Cell><Data ss:Type="String"> 11-05-20 16:01:17</Data></Cell>
 <Cell><Data ss:Type="Number">0.44</Data></Cell>
 </Row>
 <Row>
 <Cell><Data ss:Type="String"> 11-05-20 16:01:29</Data></Cell>
 <Cell><Data ss:Type="Number">0.48</Data></Cell>
 </Row>
 <Row>
 <Cell><Data ss:Type="String"> 11-05-20 16:01:40</Data></Cell>
 <Cell><Data ss:Type="Number">0.48</Data></Cell>
 </Row>
 <Row>
 <Cell><Data ss:Type="String"> 11-05-20 16:01:52</Data></Cell>
 <Cell><Data ss:Type="Number">0.53</Data></Cell>
 </Row>
 <Row>
 <Cell><Data ss:Type="String"> 11-05-20 16:02:03</Data></Cell>
 <Cell><Data ss:Type="Number">0.48</Data></Cell>
 </Row>
 <Row>
 <Cell><Data ss:Type="String"> 11-05-20 16:02:15</Data></Cell>
 <Cell><Data ss:Type="Number">0.45</Data></Cell>
 </Row>
 <Row>
 <Cell><Data ss:Type="String"> 11-05-20 16:02:26</Data></Cell>
 <Cell><Data ss:Type="Number">0.49</Data></Cell>
 </Row>
 <Row>
 <Cell><Data ss:Type="String"> 11-05-20 16:02:38</Data></Cell>
 <Cell><Data ss:Type="Number">0.47</Data></Cell>
 </Row>
 <Row>
 <Cell><Data ss:Type="String"> 11-05-20 16:02:49</Data></Cell>
 <Cell><Data ss:Type="Number">0.47</Data></Cell>
 </Row>
Code: 11-05-20 16:01:06;0,5111-05-20 16:01:17;0,44
 11-05-20 16:01:29;0,48
 11-05-20 16:01:40;0,48
 11-05-20 16:01:52;0,53
 11-05-20 16:02:03;0,48
 11-05-20 16:02:15;0,45
 11-05-20 16:02:26;0,49
 11-05-20 16:02:38;0,47
 11-05-20 16:02:49;0,47
		
	 
	
	
	
		
	Posts: 8410 
	Threads: 45 
	Joined: Jun 2015
	
 Reputation: 
481 
	
	
		It's possible to get this data into trends but you won't get better resolution than 5 minutes. Another possibility is to use built-in Dygraphs library and some Custom JavaScript to display this data. Where does this data come from, can it be retrieved by the client's browser or LM? 
Example graph:
  
		
	 
	
	
	
		
	Posts: 169 
	Threads: 58 
	Joined: Oct 2017
	
 Reputation: 
0 
	
		
		
		16.11.2020, 08:13 
(This post was last modified: 16.11.2020, 08:26 by SigmaTec.)
		
	 
		Hi Admin,
 very interesting !
 
 Datas are generated by the LM and can therefore be put in one of two formats (csv or xml). It must be possible to visualize the curves on the LM or in a browser.
 
 Dear Admin,
 
 I will test the Dygraph library and I will ask you if necessary. Thanks for that advice.
 
 Have a good week.
 
		
	 
	
	
	
		
	Posts: 8410 
	Threads: 45 
	Joined: Jun 2015
	
 Reputation: 
481 
	
	
		Here's an example that can be used as a starting point. 
It should be modified to fetch the data remotely. It already converts CSV into correct data format for the graph library.
 Code: $(function() {var csv = `11-05-20 16:01:06;0,51
 11-05-20 16:01:17;0,44
 11-05-20 16:01:29;0,48
 11-05-20 16:01:40;0,48
 11-05-20 16:01:52;0,53
 11-05-20 16:02:03;0,48
 11-05-20 16:02:15;0,45
 11-05-20 16:02:26;0,49
 11-05-20 16:02:38;0,47
 11-05-20 16:02:49;0,47`;
 
 var data = [];
 // convert CSV to correct data format
 $.each(csv.split('\n'), function(_, line) {
 var items = line.split(';')
 , d = items[0].replace(/(\d+)\-(\d+)\-(\d+) (.*)/, '20$3-$2-$1 $4')
 , n = items[1].replace(',', '.');
 
 data.push([
 new Date(d),
 Number(n)
 ]);
 });
 
 // create element for graph display, add to plan #1
 var el = $('<div></div>').css({
 position: 'absolute',
 width: 500,
 height: 300,
 left: 250,
 top: 380
 }).appendTo('#plan-1').get(0);
 
 // create graph instance
 var graph = new Dygraph(el, data, {
 labels: [ '', 'My data' ],
 xAxisLabelWidth: 60
 });
 });
graph should only be created once, to update it with new data use this:
 Code: graph.updateOptions({ file: data });
		
	 
	
	
	
		
	Posts: 169 
	Threads: 58 
	Joined: Oct 2017
	
 Reputation: 
0 
	
	
		Dear Admin,
 thanks for your script.
 
 I have just done some pretty thorough tests with Dygraph: impressive!
 I understand why you used it for Trends in LM.
 
		
	 
	
	
	
		
	Posts: 347 
	Threads: 79 
	Joined: Jan 2021
	
 Reputation: 
0 
	
	
		 (16.11.2020, 08:31)admin Wrote:  Here's an example that can be used as a starting point.It should be modified to fetch the data remotely. It already converts CSV into correct data format for the graph library.
 
 Code: $(function() {var csv = `11-05-20 16:01:06;0,51
 11-05-20 16:01:17;0,44
 11-05-20 16:01:29;0,48
 11-05-20 16:01:40;0,48
 11-05-20 16:01:52;0,53
 11-05-20 16:02:03;0,48
 11-05-20 16:02:15;0,45
 11-05-20 16:02:26;0,49
 11-05-20 16:02:38;0,47
 11-05-20 16:02:49;0,47`;
 
 var data = [];
 // convert CSV to correct data format
 $.each(csv.split('\n'), function(_, line) {
 var items = line.split(';')
 , d = items[0].replace(/(\d+)\-(\d+)\-(\d+) (.*)/, '20$3-$2-$1 $4')
 , n = items[1].replace(',', '.');
 
 data.push([
 new Date(d),
 Number(n)
 ]);
 });
 
 // create element for graph display, add to plan #1
 var el = $('<div></div>').css({
 position: 'absolute',
 width: 500,
 height: 300,
 left: 250,
 top: 380
 }).appendTo('#plan-1').get(0);
 
 // create graph instance
 var graph = new Dygraph(el, data, {
 labels: [ '', 'My data' ],
 xAxisLabelWidth: 60
 });
 });
graph should only be created once, to update it with new data use this:
 
 Code: graph.updateOptions({ file: data });
 
Hello Admin 
Is it possible to use this way to show values from object logs as trend/curve?
	 
Best Regards,
 
		
	 
	
	
	
		
	Posts: 8410 
	Threads: 45 
	Joined: Jun 2015
	
 Reputation: 
481 
	
	
		You can use graph element to display object logs in the visualization
	 
		
	 
	
	
	
		
	Posts: 347 
	Threads: 79 
	Joined: Jan 2021
	
 Reputation: 
0 
	
	
		 (04.02.2021, 16:21)admin Wrote:  You can use graph element to display object logs in the visualization 
Thank you admin 
I notice the graph element but i didnt use it before, great feature.
	 
Best Regards,
 
		
	 |