Momentary switch or button (normally open)

Hi, first time poster and newbie. :crazy_face:

I've been searching all over for a way to put a momentary button on my node red dashboard. Something that goes high while pressed and back to low when left go. I didn't find anything like that in the library here.

Anyone know of such a thing?

Thanks in advance,


There is no such node to install that would give you the momentary button functionality. But it can be done by using the ui_template node.
Have you searched here in forum? There is many threads talking about the momentary button. Many examples given and discussed.

1 Like

Do you need the 'let go'message to happen when the button is released or would it be ok for it to happen a defined time after the pressed message? If the latter then you can use a ui_button followed by a Trigger node to send the On then Off messages.

1 Like

I need something to turn on only when the button is pressed/held down and turn off when the button is left go of.

Was hoping for an easy solution as I don't have a lot of experience yet on writing code. I have been going thru the forum, maybe I'll find something here yet that I can work with.



OK. Play with this.

[{"id":"eac5d9eb.958798","type":"ui_template","z":"6d08d5ab.a8aa3c","group":"61e6d4c4.e7619c","name":"momentary button","order":7,"width":"1","height":"1","format":"<div id=\"momentary\">\n   <md-button style=\"min-width:36px;\n                    width: 100%; \n                    height: 100%; \n                    margin:0; \n                    padding: 0px; \n                    border-radius: 50%; \n                    background-color:green\">\n       \n      <i class=\"fa fa-hand-pointer-o\"></i>\n   </md-button>\n</div>\n<script>\n(function($scope) {\n    \n$('#momentary').on('touchstart mousedown', function(e) {\n    e.preventDefault(); //prevent default behavior\n    $scope.send({\"topic\":\"momentary\",\"payload\": true});\n});\n\n$('#momentary').on('touchend mouseup', function(e) {\n    e.preventDefault(); //prevent default behavior\n    $scope.send({\"topic\":\"momentary\",\"payload\": false});\n});\n    \n})(scope);\n</script>","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":true,"templateScope":"local","x":360,"y":140,"wires":[["534f375d.fce978"]]},{"id":"534f375d.fce978","type":"debug","z":"6d08d5ab.a8aa3c","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":530,"y":140,"wires":[]},{"id":"61e6d4c4.e7619c","type":"ui_group","name":"TEST","tab":"d680797a.2f8b88","order":1,"disp":true,"width":"5","collapse":false},{"id":"d680797a.2f8b88","type":"ui_tab","name":"Home","icon":"dashboard","disabled":false,"hidden":false}]
1 Like

Thank you!! That's something I can work with. :+1: Seems to operate just like I need.


Of course it does :slight_smile: But you just missed the learning part.

Well I still have to make it work for my needs so some learning yet. :wink: It has to control gpio pins on an esp8266 that is mqtt'd to a raspberry pi broker. I'm getting there little by little...


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