mirror of
				https://github.com/node-red/node-red-nodes.git
				synced 2025-03-01 10:37:43 +00:00 
			
		
		
		
	* Updates to match API changes Update to the node to match the server API changes. An attempt has been made to leave a legacy path for existing installations that may have not updated the server side. * Updated following comments. Update following comments. Output removed and node.warn or error used. oneeditprepare added. Name moved to last item. In addition, a check added to ensure nodegroup has valid value. Question: I have added a 'return' as I do not want data posted if there is not a valid nodegroup. Is this the best way to exit the function? Always taught that multiple exits was a bad idea. I wondered about raising an error / exception and then catching it but not sure how to do that. * Update documentation for revised node
		
			
				
	
	
		
			154 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			154 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| 
 | |
| <script type="text/x-red" data-template-name="emoncms">
 | |
|     <div class="form-row">
 | |
|         <label for="node-input-emonServer"><i class="fa fa-globe"></i> Emoncms server</label>
 | |
|         <input type="text" id="node-input-emonServer">
 | |
|     </div>
 | |
|     <div class="form-row">
 | |
|         <label for="node-input-nodegroup"><i class="fa fa-object-group"></i> Node</label>
 | |
|         <input type="text" id="node-input-nodegroup" placeholder="or set by msg.nodegroup">
 | |
|     </div>
 | |
|     <div class="form-row">
 | |
|         <label for="node-input-datatype"><i class="fa fa-tag"></i> Data Type</label>
 | |
|         <select id="node-input-datatype" style="width:180px;">
 | |
|             <option value="legacy">Legacy Processing</option>
 | |
|             <option value="fulljson">Valid JSON object</option>
 | |
|             <option value="json">Simple JSON</option>
 | |
|             <option value="CSV">CSV</option>
 | |
|         </select>
 | |
|     </div>
 | |
|     <div class="form-row">
 | |
|         <label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
 | |
|         <input type="text" id="node-input-name" placeholder="Emoncms">
 | |
|     </div>
 | |
| 
 | |
| </script>
 | |
| 
 | |
| <script type="text/x-red" data-help-name="emoncms">
 | |
|     <p>Posts data to Emoncms.</p>
 | |
|     <p>The <code>msg.payload</code> can contain either a comma separated list of name
 | |
|     value pairs (legacy) e.g. <pre>name:value,...</pre> or a comma separated list of values (CSV) e.g. <pre>1,2,...</pre>
 | |
|     an Emoncms simple data object e.g. <pre>{temp:12}</pre>
 | |
|     or a valid JSON object e.g. <pre>{"Total":3.273,"Yesterday":1.695}</pre>
 | |
|     <p>The node must be specified either by the <i>Node</i> element or if left blank by <code>msg.nodegroup</code></p>
 | |
|     <p>Data Type must be one of <pre>legacy, json, fulljson, CSV</pre></p>
 | |
|     <p>Insertion time can be set by using <code>msg.time</code>.
 | |
|     This can either be a valid ISO 8601 format or seconds since 1970. Not setting a time or setting an incorrect 
 | |
|     time format will result in data being pushed to Emoncms without the time element.</p>
 | |
|     <p>The output node contains the server response</p>
 | |
| </script>
 | |
| 
 | |
| <script type="text/javascript">
 | |
|     RED.nodes.registerType('emoncms',{
 | |
|         category: 'output',
 | |
|         color:"rgb(91, 192, 222)",
 | |
|         defaults: {
 | |
|             name: {value:"Emoncms Push"},
 | |
|             emonServer: {type:"emoncms-server", required:true},
 | |
|             nodegroup: {value:"", validate:function(v) {return ((v === "")||(/^[\d\w\s.-]*$/).test(v));} },
 | |
|             datatype: {value:"legacy"}
 | |
|         },
 | |
|         inputs:1,
 | |
|         outputs:0,
 | |
|         icon: "emoncms.png",
 | |
|         align: "right",
 | |
|         label: function() {
 | |
|             return this.name||this.baseurl;
 | |
|         },
 | |
|         labelStyle: function() {
 | |
|             return this.name?"node_label_italic":"";
 | |
|         },
 | |
|         oneditprepare: function() {
 | |
|             if (this.datatype === undefined) {
 | |
|                 $("#node-input-datatype").val("legacy");
 | |
|             }
 | |
|         }
 | |
|     });
 | |
| </script>
 | |
| 
 | |
| <script type="text/x-red" data-template-name="emoncms in">
 | |
|     <div class="form-row">
 | |
|         <label for="node-input-emonServer"><i class="fa fa-globe"></i> Emoncms server</label>
 | |
|         <input type="text" id="node-input-emonServer">
 | |
|     </div>
 | |
|     <div class="form-row">
 | |
|         <label for="node-input-feedid"><i class="fa fa-tag"></i> Feed ID</label>
 | |
|         <input type="text" id="node-input-feedid" placeholder="">
 | |
|     </div>
 | |
|     <div class="form-row">
 | |
|         <label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
 | |
|         <input type="text" id="node-input-name" placeholder="Emoncms">
 | |
|     </div>
 | |
| </script>
 | |
| 
 | |
| <script type="text/x-red" data-help-name="emoncms in">
 | |
|     <p>Fetches data from emoncms.</p>
 | |
|     <p>The <code>msg.payload</code> contains last emoncms feed value
 | |
| </script>
 | |
| 
 | |
| <script type="text/javascript">
 | |
|     RED.nodes.registerType('emoncms in',{
 | |
|         category: 'input',
 | |
|         color:"rgb(91, 192, 222)",
 | |
|         defaults: {
 | |
|             name: {value:"Emoncms"},
 | |
|             emonServer: {type:"emoncms-server", required:true},
 | |
|             feedid: {value:""}
 | |
|         },
 | |
|         inputs:1,
 | |
|         outputs:1,
 | |
|         icon: "emoncms.png",
 | |
|         align: "right",
 | |
|         label: function() {
 | |
|             return this.name||this.baseurl;
 | |
|         },
 | |
|         labelStyle: function() {
 | |
|             return this.name?"node_label_italic":"";
 | |
|         }
 | |
|     });
 | |
| </script>
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| <script type="text/x-red" data-template-name="emoncms-server">
 | |
|     <div class="form-row">
 | |
|         <label for="node-config-input-server"><i class="fa fa-globe"></i> Base URL</label>
 | |
|         <input type="text" id="node-config-input-server">
 | |
|     </div>
 | |
|     <div class="form-row">
 | |
|         <label for="node-config-input-apikey"><i class="fa fa-tasks"></i> API key</label>
 | |
|         <input type="text" id="node-config-input-apikey">
 | |
|     </div>
 | |
|     <div class="form-row">
 | |
|         <label for="node-config-input-name"><i class="fa fa-tag"></i> Name</label>
 | |
|         <input type="text" id="node-config-input-name">
 | |
|     </div>
 | |
| <div class="form-tips">The <b>Base URL</b> is the URL to the Emoncms root directory.</div>
 | |
| </script>
 | |
| 
 | |
| <script type="text/javascript">
 | |
|     RED.nodes.registerType('emoncms-server',{
 | |
|         category: 'config',
 | |
|         defaults: {
 | |
|             server: {value:"http://localhost",required:true},
 | |
|             name: {value:""}
 | |
|         },
 | |
|         credentials: {
 | |
|             apikey: {type:"text"}
 | |
|         },
 | |
|         label: function() {
 | |
|             return this.name||this.server;
 | |
|         }
 | |
|     });
 | |
| </script>
 |