<a href="http://eepurl.com/gJm095" target="_blank">Subscribe to my channel.</a> Only news about my nodes, no spam, no ads. I'm a github developer, not a merchant. | <a href="http://eepurl.com/gJm095" target="_blank">Subscribe to my channel.</a> Only news about my nodes, no spam, no ads. I'm a github developer, not a merchant. | ||||
<p> | |||||
<b>Version 1.0.20</b> August 2020<br/> | |||||
- NEW: Inject Node. The pourpose of this node is to speed up the testing of you flow, by issuing true/false command by pushbutton on the node itself. This node is simpler as the default node-red inject node.</br> | |||||
</p> | |||||
<p> | <p> | ||||
<b>Version 1.0.19</b> August 2020<br/> | <b>Version 1.0.19</b> August 2020<br/> | ||||
- NEW: Simple Output node. The pourpose of this node is to send a message with payload TRUE on the first pin and FALSE on second pin, independently from the msg input.</br> | - NEW: Simple Output node. The pourpose of this node is to send a message with payload TRUE on the first pin and FALSE on second pin, independently from the msg input.</br> |
You can also set the default values of the topic inputs. | You can also set the default values of the topic inputs. | ||||
## CONFIGURATION | |||||
### CONFIGURATION | |||||
**Number of different topics to evaluate** | **Number of different topics to evaluate** | ||||
</code> | </code> | ||||
</details> | </details> | ||||
# INJECT ULTIMATE | |||||
The pourpose of this node is to send a message with payload TRUE on the first pin, FALSE on second pin and a TOGGLE (true/false) on the third pin, by pressing the pushbutton.<br /> | |||||
This is useful if you need to simply test your flow. The node is simpler as the default node-red inject node. | |||||
<img src='https://raw.githubusercontent.com/Supergiovane/node-red-contrib-boolean-logic-ultimate/master/img/Inject.png' width='60%'> | |||||
<details><summary>CLICK HERE, copy and paste it into your flow</summary> | |||||
<code> | |||||
[{"id":"13faaec9.cd80b9","type":"InjectUltimate","z":"81a64dae.012c18","name":"True","x":110,"y":1000,"wires":[["6557d19.c71abb"],[],[]]},{"id":"6557d19.c71abb","type":"debug","z":"81a64dae.012c18","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":370,"y":1080,"wires":[]},{"id":"569b3820.b056e8","type":"InjectUltimate","z":"81a64dae.012c18","name":"False","x":110,"y":1080,"wires":[[],["6557d19.c71abb"],[]]},{"id":"189399f.c384f66","type":"InjectUltimate","z":"81a64dae.012c18","name":"Toggle","x":110,"y":1160,"wires":[[],[],["6557d19.c71abb"]]},{"id":"56119644.8c4bf8","type":"comment","z":"81a64dae.012c18","name":"Inject Ultimate. Simple and efficient.","info":"","x":180,"y":940,"wires":[]}] | |||||
</code> | |||||
</details> | |||||
[license-image]: https://img.shields.io/badge/license-MIT-blue.svg | [license-image]: https://img.shields.io/badge/license-MIT-blue.svg | ||||
[license-url]: https://github.com/Supergiovane/node-red-contrib-boolean-logic-ultimate/master/LICENSE | [license-url]: https://github.com/Supergiovane/node-red-contrib-boolean-logic-ultimate/master/LICENSE | ||||
[npm-url]: https://npmjs.org/package/node-red-contrib-boolean-logic-ultimate | [npm-url]: https://npmjs.org/package/node-red-contrib-boolean-logic-ultimate |
<script type="text/javascript"> | |||||
RED.nodes.registerType('InjectUltimate', { | |||||
category: 'boolean logic ultimate', | |||||
color: '#ff8080', | |||||
defaults: { | |||||
name: { | |||||
value: "Inject", | |||||
}, | |||||
curVal: { | |||||
value: true, | |||||
} | |||||
}, | |||||
inputs: 0, | |||||
outputs: 3, | |||||
outputLabels: ["True", "False", "Toggle"], | |||||
icon: "inject.svg", | |||||
button: { | |||||
onclick: function () { | |||||
// Called when the button is clicked | |||||
if (this.changed) { | |||||
return RED.notify(RED._("notification.warning", { message: RED._("notification.warnings.undeployedChanges") }), "warning"); | |||||
} | |||||
var node = this; | |||||
$.ajax({ | |||||
url: "InjectUltimate/" + this.id, | |||||
type: "POST", | |||||
success: function (resp) { | |||||
RED.notify(node._("inject.success", { label: label }), { type: "success", id: "inject" }); | |||||
}, | |||||
error: function (jqXHR, textStatus, errorThrown) { | |||||
if (jqXHR.status == 404) { | |||||
RED.notify(node._("common.notification.error", { message: node._("common.notification.errors.not-deployed") }), "error"); | |||||
} else if (jqXHR.status == 500) { | |||||
RED.notify(node._("common.notification.error", { message: node._("inject.errors.failed") }), "error"); | |||||
} else if (jqXHR.status == 0) { | |||||
RED.notify(node._("common.notification.error", { message: node._("common.notification.errors.no-response") }), "error"); | |||||
} else { | |||||
RED.notify(node._("common.notification.error", { message: node._("common.notification.errors.unexpected", { status: jqXHR.status, message: textStatus }) }), "error"); | |||||
} | |||||
} | |||||
}); | |||||
}, | |||||
enabled: function () { | |||||
return !this.changed | |||||
} | |||||
}, | |||||
label: | |||||
function () { | |||||
return this.name || "Inject"; | |||||
}, | |||||
paletteLabel: function () { | |||||
return "InjectUltimate"; | |||||
} | |||||
}); | |||||
</script> | |||||
<script type="text/x-red" data-template-name="InjectUltimate"> | |||||
<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> | |||||
<div class="form-row"> | |||||
<label for="node-input-topic"><i class="fa fa-tasks"></i> Topic</label> | |||||
<input type="text" id="node-input-topic" placeholder="Topic"> | |||||
</div> | |||||
</script> | |||||
<script type="text/x-red" data-help-name="InjectUltimate"> | |||||
<p> | |||||
<a href="https://www.paypal.me/techtoday" target="_blank"><img src='https://img.shields.io/badge/Donate-PayPal-blue.svg?style=flat-square' width='30%'></a> | |||||
and | |||||
<a href="http://eepurl.com/gJm095" target="_blank">Subscribe to my channel</a> for news about my nodes. | |||||
</p> | |||||
<p>This node sends TRUE on output 1, FALSE on putput 2 and a TOGGLED value (true/false) on output 3, on every click of the button.<br/> | |||||
The status indicator represents the output value. | |||||
</p> | |||||
<a href="https://www.paypal.me/techtoday" target="_blank"><img src='https://img.shields.io/badge/Donate-PayPal-blue.svg?style=flat-square' width='30%'></a> | |||||
</script> |
module.exports = function (RED) { | |||||
function InjectUltimate(config) { | |||||
RED.nodes.createNode(this, config); | |||||
this.config = config; | |||||
var node = this; | |||||
node.curVal = true; | |||||
node.topic = config.topic || "Inject"; | |||||
setNodeStatus({ fill: "grey", shape: "dot", text: "Waiting" }); | |||||
RED.httpAdmin.post("/InjectUltimate/:id", RED.auth.needsPermission("InjectUltimate.write"), function (req, res) { | |||||
var node = RED.nodes.getNode(req.params.id); | |||||
if (node != null) { | |||||
try { | |||||
node.buttonpressed(); | |||||
res.sendStatus(200); | |||||
} catch (err) { | |||||
res.sendStatus(500); | |||||
node.error(RED._("InjectUltimate.failed", { error: err.toString() })); | |||||
} | |||||
} else { | |||||
res.sendStatus(404); | |||||
} | |||||
}); | |||||
// 29/08/2020 triggered by button press | |||||
node.buttonpressed = () => { | |||||
setNodeStatus({ fill: "green", shape: "dot", text: "Sent true/false/" + node.curVal.toString() + " (next " + (!node.curVal).toString() + ")" }); | |||||
var msgTrue = { payload: true, topic: node.topic }; | |||||
var msgFalse = { payload: false, topic: node.topic }; | |||||
var msgToggled = { payload: node.curVal, topic: node.topic }; | |||||
node.curVal = !node.curVal; | |||||
node.send([msgTrue, msgFalse, msgToggled]); | |||||
} | |||||
function setNodeStatus({ fill, shape, text }) { | |||||
var dDate = new Date(); | |||||
node.status({ fill: fill, shape: shape, text: text + " (" + dDate.getDate() + ", " + dDate.toLocaleTimeString() + ")" }) | |||||
} | |||||
} | |||||
RED.nodes.registerType("InjectUltimate", InjectUltimate); | |||||
} |
<a href="http://eepurl.com/gJm095" target="_blank">Subscribe to my channel</a> for news about my nodes. | <a href="http://eepurl.com/gJm095" target="_blank">Subscribe to my channel</a> for news about my nodes. | ||||
</p> | </p> | ||||
<p>A node that emits the inverted input value.<br/> | |||||
The status indicator represents the output value. | |||||
<p>This node replaces the input payload by sendind a message with payload TRUE on output 1 and FALSE on output 2.<br/> | |||||
</p> | </p> | ||||
<a href="https://www.paypal.me/techtoday" target="_blank"><img src='https://img.shields.io/badge/Donate-PayPal-blue.svg?style=flat-square' width='30%'></a> | <a href="https://www.paypal.me/techtoday" target="_blank"><img src='https://img.shields.io/badge/Donate-PayPal-blue.svg?style=flat-square' width='30%'></a> | ||||
{ | { | ||||
"name": "node-red-contrib-boolean-logic-ultimate", | "name": "node-red-contrib-boolean-logic-ultimate", | ||||
"version": "1.0.19", | |||||
"version": "1.0.20", | |||||
"description": "A set of Node-RED enhanced boolean logic node, flow interruption node, blinker node, invert node, filter node, with persisten values after reboot and more.", | "description": "A set of Node-RED enhanced boolean logic node, flow interruption node, blinker node, invert node, filter node, with persisten values after reboot and more.", | ||||
"author": "Supergiovane (https://github.com/Supergiovane)", | "author": "Supergiovane (https://github.com/Supergiovane)", | ||||
"dependencies": { | "dependencies": { | ||||
"FilterUltimate": "boolean-logic-ultimate/FilterUltimate.js", | "FilterUltimate": "boolean-logic-ultimate/FilterUltimate.js", | ||||
"InterruptFlowUltimate": "boolean-logic-ultimate/InterruptFlowUltimate.js", | "InterruptFlowUltimate": "boolean-logic-ultimate/InterruptFlowUltimate.js", | ||||
"BlinkerUltimate": "boolean-logic-ultimate/BlinkerUltimate.js", | "BlinkerUltimate": "boolean-logic-ultimate/BlinkerUltimate.js", | ||||
"SimpleOutputUltimate": "boolean-logic-ultimate/SimpleOutputUltimate.js" | |||||
"SimpleOutputUltimate": "boolean-logic-ultimate/SimpleOutputUltimate.js", | |||||
"InjectUltimate": "boolean-logic-ultimate/InjectUltimate.js" | |||||
} | } | ||||
} | } |