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

Add node to allow Pushover notification

This commit is contained in:
Darren Gallagher 2014-02-03 16:40:47 +00:00
parent 439ca32e09
commit eb362be8a6
3 changed files with 126 additions and 0 deletions

View File

@ -0,0 +1,57 @@
<!--
Copyright 2013 IBM Corp.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<script type="text/x-red" data-template-name="pushover">
<div class="form-row">
<label for="node-input-title"><i class="icon-flag"></i> Title</label>
<input type="text" id="node-input-title" placeholder="Node-RED">
</div>
<div class="form-row">
<label for="node-input-name"><i class="icon-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
</script>
<script type="text/x-red" data-help-name="pushover">
<p>Uses Pushover to push the <b>msg.payload</b> to an Android device that has Pushover app installed.</p>
<p>Optionally uses <b>msg.topic</b> to set the title, if not already set in the properties.</p>
<p>You MUST configure both your application API token and your user key. Either into settings.js like this</p>
<p><pre>pushover: { token:'My-Application-API-Token', userkey:'My-User-Key' },</pre></p>
<p>Or as a pushovercredentials.js file in the directory <b>above</b> node-red.<p>
<p><pre>module.exports = { token:'My-Application-API-Token', userkey:'My-User-Key' }</pre></p>
</script>
<script type="text/javascript">
RED.nodes.registerType('pushover',{
category: 'output',
defaults: {
title: {value:""},
name: {value:""}
},
color:"#a7c9a0",
inputs:1,
outputs:0,
icon: "pushover.png",
align: "right",
label: function() {
return this.name||this.title||"pushover";
},
labelStyle: function() {
return this.name?"node_label_italic":"";
}
});
</script>

View File

@ -0,0 +1,69 @@
/**
* Copyright 2013 IBM Corp.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
var RED = require(process.env.NODE_RED_HOME+"/red/red");
var PushOver = require('pushover-notifications');
var util = require('util');
try {
var pushovercredentials = RED.settings.pushover || require(process.env.NODE_RED_HOME+"/../pushovercredentials.js");
}
catch(err) {
util.log("[57-pushover.js] Error: Failed to load Pushover credentials");
}
if (pushovercredentials) {
var pusher = new PushOver( {
user: pushovercredentials.userkey,
token: pushovercredentials.token,
});
}
function PushoverNode(n) {
RED.nodes.createNode(this,n);
this.title = n.title;
var node = this;
this.on("input",function(msg) {
var titl = this.title||msg.topic||"Node-RED";
if (typeof(msg.payload) == 'object') {
msg.payload = JSON.stringify(msg.payload);
}
if (pushovercredentials) {
var pomsg = {
message: msg.payload,
title: titl,
sound: 'magic',
priority: 1
};
try {
//pusher.note(deviceId, titl, msg.payload, function(err, response) {
pusher.send( pomsg, function(err, response) {
if (err) node.error(err);
console.log(response);
});
}
catch (err) {
node.error(err);
}
}
else {
node.warn("Pushover credentials not set/found. See node info.");
}
});
}
RED.nodes.registerType("pushover",PushoverNode);

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB