# Cancel inputs for a period of time

**URL:** <https://discourse.nodered.org/t/cancel-inputs-for-a-period-of-time/43749>\
**Category:** General\
**Created:** [6 April 2021 08:37 UTC](https://discourse.nodered.org/t/cancel-inputs-for-a-period-of-time/43749 "2021-04-06T08:37:56Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![luis](https://avatars.discourse-cdn.com/v4/letter/l/3e96dc/32.png) [@luis](https://discourse.nodered.org/u/luis)\
**Post date:** [6 April 2021 08:37 UTC](https://discourse.nodered.org/t/cancel-inputs-for-a-period-of-time/43749/1 "2021-04-06T08:37:57Z")

</div>

Is there a way I can cancel inputs from other nods using a button until I press it again?

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [6 April 2021 09:22 UTC](https://discourse.nodered.org/t/cancel-inputs-for-a-period-of-time/43749/2 "2021-04-06T09:22:00Z")

</div>

Welcome to the forum @luis.

That is a very vague question as you haven't said what you mean by 'inputs from other nodes`. However if what you want to do is to block messages based on the button press then you can use node-red-contrib-simple-gate to do that. It would be easiest to use a ui-switch rather than a button as then you can feed the switch straight into the gate node. If you must use a button then you will have to add a bit of extra logic generate the pass/block messages alternately.

---

<div class="post-metadata">

**Author:** ![luis](https://avatars.discourse-cdn.com/v4/letter/l/3e96dc/32.png) [@luis](https://discourse.nodered.org/u/luis)\
**Post date:** [6 April 2021 09:29 UTC](https://discourse.nodered.org/t/cancel-inputs-for-a-period-of-time/43749/3 "2021-04-06T09:29:47Z")

</div>

Yes I want to block messages based on the button and I also must use a button, I'll try that simple gate. Thanks

---

<div class="post-metadata">

**Author:** ![luis](https://avatars.discourse-cdn.com/v4/letter/l/3e96dc/32.png) [@luis](https://discourse.nodered.org/u/luis)\
**Post date:** [6 April 2021 09:38 UTC](https://discourse.nodered.org/t/cancel-inputs-for-a-period-of-time/43749/4 "2021-04-06T09:38:46Z")

</div>

I wanted to press the button once and block the messages and then when I click it again it lets the messages through

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [6 April 2021 09:46 UTC](https://discourse.nodered.org/t/cancel-inputs-for-a-period-of-time/43749/5 "2021-04-06T09:46:52Z")

</div>

You can easily convert the single press button to two state using a function node and node context to remember the previous state. However, get it running using a ui\_switch first (as that is simpler and you can check it works) then change to using a button if you really must.

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [6 April 2021 10:09 UTC](https://discourse.nodered.org/t/cancel-inputs-for-a-period-of-time/43749/6 "2021-04-06T10:09:27Z")

</div>

You can block / unblock flow in the node-red editor with simple change and switch nodes...

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/8/4/847ee6402bf78530c9282f95f93fad3395aa675e.png)

```auto
[{"id":"cd7521f5.10b9c","type":"inject","z":"4656711a.6b16a","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"0.5","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":250,"y":780,"wires":[["f09b3da7.cc7b7"]]},{"id":"f09b3da7.cc7b7","type":"switch","z":"4656711a.6b16a","name":"blockFlow is false?","property":"blockFlow","propertyType":"flow","rules":[{"t":"false"}],"checkall":"true","repair":false,"outputs":1,"x":430,"y":780,"wires":[["c7e7a1c1.45b11"]]},{"id":"c7e7a1c1.45b11","type":"debug","z":"4656711a.6b16a","name":"","active":true,"tosidebar":false,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":450,"y":840,"wires":[]},{"id":"786630c0.b0ed4","type":"inject","z":"4656711a.6b16a","name":"block","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":230,"y":700,"wires":[["484bfc3f.a71ed4"]]},{"id":"f5819368.a7c6f","type":"inject","z":"4656711a.6b16a","name":"unblock","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"false","payloadType":"bool","x":230,"y":660,"wires":[["484bfc3f.a71ed4"]]},{"id":"484bfc3f.a71ed4","type":"change","z":"4656711a.6b16a","name":"","rules":[{"t":"set","p":"blockFlow","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":430,"y":680,"wires":[[]]}]

```

  
  

Or for a more self contained version (with indicator), use a function node...

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/1/3/139b420ea63be823a3166337bec3dc9e327dcb29.png)

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/6/9/690101e7ae0253ac2e26260a82227abbec4ec7d0.png)

```auto
[{"id":"cd7521f5.10b9c","type":"inject","z":"4656711a.6b16a","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"0.5","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":250,"y":780,"wires":[["c1e35392.abf13"]]},{"id":"c7e7a1c1.45b11","type":"debug","z":"4656711a.6b16a","name":"","active":true,"tosidebar":false,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":450,"y":840,"wires":[]},{"id":"786630c0.b0ed4","type":"inject","z":"4656711a.6b16a","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"_block","payload":"true","payloadType":"bool","x":240,"y":700,"wires":[["c1e35392.abf13"]]},{"id":"f5819368.a7c6f","type":"inject","z":"4656711a.6b16a","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"_block","payload":"false","payloadType":"bool","x":250,"y":660,"wires":[["c1e35392.abf13"]]},{"id":"c1e35392.abf13","type":"function","z":"4656711a.6b16a","name":"gate","func":"var block = context.get(\"block\") || false;\nif (msg.topic == \"_block\") {\n block = msg.payload;\n context.set(\"block\", block);\n var stat = {\n fill: block ? \"red\" : \"green\",\n shape: block ? \"dot\": \"ring\",\n text: block ? \"Blocked\" : \"Unblocked\"\n }\n node.status(stat)\n}\n\nif(block) return null; //halt flow\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":410,"y":780,"wires":[["c7e7a1c1.45b11"]]}]

```

---

<div class="post-metadata">

**Author:** ![luis](https://avatars.discourse-cdn.com/v4/letter/l/3e96dc/32.png) [@luis](https://discourse.nodered.org/u/luis)\
**Post date:** [6 April 2021 10:41 UTC](https://discourse.nodered.org/t/cancel-inputs-for-a-period-of-time/43749/8 "2021-04-06T10:41:17Z")

</div>

But can I use that with just one button?

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [6 April 2021 10:45 UTC](https://discourse.nodered.org/t/cancel-inputs-for-a-period-of-time/43749/9 "2021-04-06T10:45:50Z")

</div>

> [@luis](#):
>
> But can I use that with just one button

Yes. Modify the function to invert the flag. you can do whatever you want. Pretty basic stuff TBH...

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/f/1/f10fbd61814f1cb2b5914b96394e5616e19d62cc.png)

```auto
[{"id":"30fa103f.eaf63","type":"inject","z":"ca47339b.a88a1","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"0.5","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":310,"y":700,"wires":[["83cbfbf5.ac2558"]]},{"id":"9ffb7a65.d24838","type":"debug","z":"ca47339b.a88a1","name":"","active":true,"tosidebar":false,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":510,"y":760,"wires":[]},{"id":"83cbfbf5.ac2558","type":"function","z":"ca47339b.a88a1","name":"gate","func":"var block = context.get(\"block\") || false;\n\nif (msg.topic == \"_block_toggle\") {\n block = !block;\n context.set(\"block\", block);\n var stat = {\n fill: block ? \"red\" : \"green\",\n shape: block ? \"dot\": \"ring\",\n text: block ? \"Blocked\" : \"Unblocked\"\n }\n node.status(stat)\n}\n\nif(block) return null; //halt flow\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":510,"y":700,"wires":[["9ffb7a65.d24838"]]},{"id":"69be54a4.ab448c","type":"inject","z":"ca47339b.a88a1","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"_block_toggle","payload":"true","payloadType":"bool","x":330,"y":640,"wires":[["83cbfbf5.ac2558"]]}]

```

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [27 May 2021 15:59 UTC](https://discourse.nodered.org/t/cancel-inputs-for-a-period-of-time/43749/10 "2021-05-27T15:59:07Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
