forked from node-red/node-red-nodes
-
Notifications
You must be signed in to change notification settings - Fork 0
/
88-emoncms.html
144 lines (134 loc) · 5.43 KB
/
88-emoncms.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<script type="text/html" 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/html" 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/html" 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/html" data-help-name="emoncms in">
<p>Fetches data from emoncms.</p>
<p>The <code>msg.topic</code> contains the name of the Feed</p>
<p>The <code>msg.payload</code> contains last emoncms feed value</p>
<p>The <code>msg.feed_data</code> contains all the feed data</p>
</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/html" 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>