1
0
mirror of https://github.com/node-red/node-red-nodes.git synced 2023-10-10 13:36:58 +02:00

Added try/catch around duino board creation. Added customisable pol interval to heat miser node

This commit is contained in:
Sean Bedford 2014-03-18 13:38:16 +00:00
parent 3858b4275d
commit d1d177669d
3 changed files with 14 additions and 5 deletions

View File

@ -23,8 +23,12 @@ function DuinoNode(n) {
RED.nodes.createNode(this,n); RED.nodes.createNode(this,n);
this.pin = n.pin || "10"; this.pin = n.pin || "10";
node = this; node = this;
try {
this.board = new duino.Board(); this.board = new duino.Board();
}
catch {
util.log("[duino] - Error establishing board connection!");
}
this.on("input", function(message) { this.on("input", function(message) {
if (typeof(message.payload) == "string") { if (typeof(message.payload) == "string") {

View File

@ -27,6 +27,10 @@
<label for="node-input-name"><i class="icon-tag"></i> PIN</label> <label for="node-input-name"><i class="icon-tag"></i> PIN</label>
<input type="text" id="node-input-pin" placeholder="1234"> <input type="text" id="node-input-pin" placeholder="1234">
</div> </div>
<div class="form-row">
<label for="node-input-name"><i class="icon-tag"></i> Poll time (in minutes)</label>
<input type="text" id="node-input-pollTime" placeholder="30">
</div>
<div class="form-tips">Expects a msg.payload with a JSON object that contains settings for the Heatmiser thermostat</div> <div class="form-tips">Expects a msg.payload with a JSON object that contains settings for the Heatmiser thermostat</div>
</script> </script>

View File

@ -21,10 +21,11 @@ var util = require('util');
function HeatmiserNode(n) { function HeatmiserNode(n) {
// TODO - holiday and hot water cases when confirmed working // TODO - holiday and hot water cases when confirmed working
var DEBUG = true; var DEBUG = false;
RED.nodes.createNode(this,n); RED.nodes.createNode(this,n);
this.ip = n.ip || "192.168.0.1"; this.ip = n.ip || "192.168.0.1";
this.pin = n.pin || "1234"; this.pin = n.pin || "1234";
this.pollTime = n.pollTime*60*1000 || 30*60*1000
this.multiWriteFunc = undefined; this.multiWriteFunc = undefined;
node = this; node = this;
@ -40,7 +41,7 @@ function HeatmiserNode(n) {
node.multiWriteFunc = undefined; node.multiWriteFunc = undefined;
return; return;
} }
node.send(data.dcb); node.send({topic: "", payload:JSON.stringify(data.dcb)});
}); });
this.hm.on('error', function(data) { this.hm.on('error', function(data) {
if (DEBUG) { if (DEBUG) {
@ -57,7 +58,7 @@ function HeatmiserNode(n) {
if (!this.currentStatus) { if (!this.currentStatus) {
this.read(); this.read();
setInterval(this.read, 30000); setInterval(this.read, this.pollTime);
} }
this.write = function(dcb) { this.write = function(dcb) {