Skip to content

Commit afa46ef

Browse files
committed
Merge pull request #43 from henols/master
Deals with csv and json payload in a smarter way
2 parents f18b14c + 9808e8a commit afa46ef

File tree

2 files changed

+16
-17
lines changed

2 files changed

+16
-17
lines changed

io/emoncms/88-emoncms.html

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,25 +20,20 @@
2020
<input type="text" id="node-input-emonServer">
2121
</div>
2222
<div class="form-row">
23-
<label for="node-input-topic"><i class="icon-tasks"></i> Topic</label>
24-
<input type="text" id="node-input-topic" placeholder="">
25-
</div>
26-
<div class="form-row">
27-
<label for="node-input-nodegroup"><i class="icon-tag"></i> Node Group</label>
23+
<label for="node-input-nodegroup"><i class="icon-tag"></i> Node</label>
2824
<input type="text" id="node-input-nodegroup" placeholder="">
2925
</div>
3026
<div class="form-row">
3127
<label for="node-input-name"><i class="icon-tag"></i> Name</label>
3228
<input type="text" id="node-input-name" placeholder="Emoncms">
3329
</div>
34-
<div class="form-tips">Topic is not mandatory, if Topic is left blank <b>msg.topic</b> will used. Topic overrides <b>msg.topic</b></br>
35-
Node Group (numeric) is not mandatory, if Node Group is left blank <b>msg.nodegrpup</b> will used. Node Group overrides <b>msg.nodegroup</b></div>
3630
</script>
3731

3832
<script type="text/x-red" data-help-name="emoncms">
39-
<p>Performs post to Emoncms.</p>
40-
<p>Topic is not mandatory, if Topic is left blank <b>msg.topic</b> will used. Topic overrides <b>msg.topic</b></p>
41-
<p>Node Group (numeric) is not mandatory, if Node Group is left blank <b>msg.nodegrpup</b> will used. Node overrides <b>msg.nodegrpup</b></p>
33+
<p>Emoncms post.</p>
34+
<p>The <b>msg.payload</b> can contain either a comma separated list of name value pairs ex. name:value,... or a comma separated list of values ex. 1,2,.. .
35+
<p>If Node is left blank <b>msg.nodegrpup</b> will used.</p>
36+
<p>Insertion time can be manipulated by setting <b>msg.time</b>.</p>
4237
</script>
4338

4439
<script type="text/javascript">
@@ -48,7 +43,6 @@
4843
defaults: {
4944
name: {value:"Emoncms"},
5045
emonServer: {type:"emoncms-server", required:true},
51-
topic: {value:""},
5246
nodegroup: {value:""}
5347
},
5448
inputs:1,
@@ -85,7 +79,6 @@
8579
category: 'config',
8680
defaults: {
8781
server: {value:"http://localhost",required:true},
88-
// apikey: {value:"",required:true},
8982
name: {value:""}
9083
},
9184
label: function() {

io/emoncms/88-emoncms.js

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,18 +71,24 @@ function Emoncms(n) {
7171
this.baseurl = sc.server;
7272
this.apikey = sc.apikey;
7373

74-
this.topic = n.topic ||"";
7574
this.nodegroup = n.nodegroup || "";
7675
var node = this;
7776
if (this.baseurl.substring(0,5) === "https") { var http = require("https"); }
7877
else { var http = require("http"); }
7978
this.on("input", function(msg) {
80-
81-
var topic = this.topic || msg.topic;
79+
this.url = this.baseurl + '/input/post.json?';
80+
if(msg.payload.indexOf(':') > -1){
81+
this.url += 'json={' + msg.payload + '}';
82+
} else {
83+
this.url += 'csv='+msg.payload;
84+
}
85+
this.url += '&apikey='+this.apikey;
8286
var nodegroup = this.nodegroup || msg.nodegroup;
83-
this.url = this.baseurl + '/input/post.json?json={' + topic + ':' + msg.payload+'}&apikey='+this.apikey;
8487
if(nodegroup != ""){
85-
this.url += '&node='+nodegroup;
88+
this.url += '&node=' + nodegroup;
89+
}
90+
if(typeof msg.time !== 'undefined'){
91+
this.url += '&time=' + msg.time;
8692
}
8793
node.log("[emoncms] "+this.url);
8894
http.get(this.url, function(res) {

0 commit comments

Comments
 (0)