GithubHelp home page GithubHelp logo

node-red / node-red Goto Github PK

View Code? Open in Web Editor NEW
18.6K 534.0 3.3K 52.47 MB

Low-code programming for event-driven applications

Home Page: http://nodered.org

License: Apache License 2.0

HTML 0.25% JavaScript 99.74% Shell 0.01% CSS 0.01%
node-red javascript low-code openjs-foundation flow-based-programming visual-programming

node-red's Introduction

Node-RED

https://nodered.org

Build Status

Low-code programming for event-driven applications.

Node-RED: Low-code programming for event-driven applications

Quick Start

Check out https://nodered.org/docs/getting-started/ for full instructions on getting started.

  1. sudo npm install -g --unsafe-perm node-red
  2. node-red
  3. Open http://localhost:1880

Getting Help

More documentation can be found here.

For further help, or general discussion, please use the Node-RED Forum or slack team.

Developers

If you want to run the latest code from git, here's how to get started:

  1. Clone the code:

     git clone https://github.com/node-red/node-red.git
     cd node-red
    
  2. Install the node-red dependencies

     npm install
    
  3. Build the code

     npm run build
    
  4. Run

     npm start
    

Contributing

Before raising a pull-request, please read our contributing guide.

This project adheres to the Contributor Covenant 1.4. By participating, you are expected to uphold this code. Please report unacceptable behavior to any of the project's core team at [email protected].

Authors

Node-RED is a project of the OpenJS Foundation.

It is maintained by:

Copyright and license

Copyright OpenJS Foundation and other contributors, https://openjsf.org under the Apache 2.0 license.

node-red's People

Contributors

annaet avatar bartbutenaers avatar belphemur avatar bonanitech avatar btsimonh avatar dceejay avatar eeyepee avatar fvdpol avatar gogovega avatar hardillb avatar hbeeken avatar hindessm avatar hirokiuchikawa avatar hiroyasunishiyama avatar hobbyquaker avatar joebordes avatar k-toumura avatar kallenboone avatar kazuhitoyokoi avatar kazuki-nakanishi avatar knolleary avatar mblackstock avatar naka7808 avatar natcl avatar paulwieland avatar ralphwetzel avatar sammachin avatar steve-mcl avatar yumamatsuura avatar zobalogh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

node-red's Issues

Empty error in debug when connection failed

If you click on the box on the right hand side of a debug node after accidently killing node-red, the error window just displays "Error:".

Bit of a stupid mistake on my part I realise, but a better message would help :)

Embedded Node-Red showing error connecting to server

I've followed the instructions here to merge a standalone app with node-red. I have attached the node-red instance to /red

Things seamed to be working ok, except I'm getting errors in the browser about losing connection to the server. The browser console suggests that something is trying connect to /red//debug

Add support for delaying for a random period

I would like be able to turn my lights on at a random time after sunset, to make my house appear occupied.

Please can you add a 'random' feature to the Delay node type?

Parameters would be the range that the random number is within.

BUG: headers is not defined in http request node

There is an issue in the http request node exposed by this flow file:

[{"id":"bac767b0.453898","type":"inject","name":"","topic":"","payload":"","repeat":"","crontab":"","once":false,"x":151,"y":61,"wires":[["c1c7c58e.3e3838"]]},{"id":"c1c7c58e.3e3838","type":"debug","name":"","active":true,"complete":false,"x":356,"y":76,"wires":[]},{"id":"ce65ea89.319a18","type":"http request","name":"","method":"GET","url":"","x":381,"y":225,"wires":[["fbe4dabb.041b28"]]},{"id":"18c45049.e73bb","type":"function","name":"","func":"// The received message is stored in 'msg'\n// It will have at least a 'payload' property:\n//   console.log(msg.payload);\n// The 'context' object is available to store state\n// between invocations of the function\n//   context = {};\n\n//url, if set, is used as the url of the request\n//method, if set, is used as the HTTP method of the request. Must be one of GET, PUT, POST or DELETE (default: GET)\n//headers, if set, should be an object containing field/value pairs to be added as request headers\n//payload is sent as the body of the request\nmsg.url = \"http://www.google.com\";\nmsg.method = \"GET\";\nvar basicAuth64 = new Buffer(\"user:pass\").toString('base64');\nmsg.headers = {\n\t\"Authentication\": \"Basic \" + basicAuth64,\n\t\"Content-Type\": \"application/json\"\n}\n\nmsg.payload = JSON.stringify({\n\t\"Test\": \"JSON\"\n})\nreturn msg;","outputs":1,"x":243,"y":225,"wires":[["ce65ea89.319a18"]]},{"id":"9747eaf1.68b818","type":"inject","name":"","topic":"","payload":"","repeat":"","crontab":"","once":false,"x":114,"y":226,"wires":[["18c45049.e73bb"]]},{"id":"fbe4dabb.041b28","type":"debug","name":"","active":true,"complete":false,"x":531,"y":229,"wires":[]}]

It results in a debug output of "headers is not defined"

It appears line 85 of nodes/io/21-httpin.js needs to be changed from

 opts.header = headers;

to

opts.header = msg.headers;

As an aside - it was difficult to track down the bug because I couldn't find the node's source file (I didn't realize you could define multiple nodes in the same file!). For caught errors such as this one it would be nice if the debug console could log the offending file name/path.

httpRoot and httpAuth not taking effect

I've been trying to enable authentication on Node-RED, but don't seem to be able to get httpAuth to take effect - I can always quite happily get to 127.0.0.1:1880, without authenticating.

In order to test whether it's permitting me because I'm coming through the loopback interface, I thought I'd test another option - changing httpRoot. This didn't seem to take effect either.

I've now stripped back my repo to HEAD, except for uncommenting the sample httpAuth and httpRoot in settings js.

I see the following:
[red] Server now running at http://127.0.0.1:1880/admin
but it's still running on 127.0.0.1:1880 - If I go to 127.0.0.1:1880/admin, I get:
Cannot GET /admin

I've done a bit of debugging and can see Express getting configured with the options - I just can't work out why they're not working when requests actually come in. I can do some more debugging later but wanted to note this down in case someone else is fixing it or I'm missing something obvious.

Ubuntu 13.04
Node v0.10.18
Express 3.4.0

Handle missing node types better

An import will be refused if it requires a node type that isn't in your palette. We can do something a bit more useful.

An earlier version created a 'ghost' node in its place - but it didn't preserve the node's properties and they would be lost on deploy, so it was taken out.

We need to put it back in and make sure it does preserve the properties.

IRC Node - Re-connects after deletion

After successfully deploying the IRC node and connecting to a server I then find that when removing the node and re-deploying the bot disconnects as expected but then re-connects to the server. As there is no node there any more the only way to remove the nodebot is to restart the server completely.

Arduino Node Crash On Deploy

When dragging an arduino node to the canvas and once configured I then click deploy and the server crashes. I get the following in my console:

6 Oct 18:53:01 - [red] Starting flows
6 Oct 18:53:01 - [firmata] Opening/dev/ttyACM0
6 Oct 18:53:01 - [firmata] Arduino already connected
{ reportversion:
   [ { [Function: g] listener: [Function] },
     { [Function: g] listener: [Function] } ],
  queryfirmware: { [Function: g] listener: [Function] } }
6 Oct 18:53:02 - [mqtt] disconnected from broker tcp://api.xively.com:1883
6 Oct 18:53:02 - [mqtt] connected to broker tcp://api.xively.com:1883
ANALOG 0 2
6 Oct 18:53:04 - [red] Uncaught Exception:
6 Oct 18:53:04 - TypeError: Cannot set property 'mode' of undefined
    at Board.pinMode (/home/pi/node-red/node_modules/firmata/lib/firmata.js:465:25)
    at null.<anonymous> (/home/pi/node-red/nodes/hardware/35-arduino.js:86:16)
    at wrapper (timers.js:252:14)
    at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)

If I then restart node and red.js I get plenty of:

6 Oct 19:00:55 - [log] [arduino in:pin0] Waiting for Arduino
6 Oct 19:00:57 - [log] [arduino in:pin0] Waiting for Arduino
6 Oct 19:00:59 - [log] [arduino in:pin0] Waiting for Arduino
6 Oct 19:01:01 - [log] [arduino in:pin0] Waiting for Arduino
6 Oct 19:01:03 - [log] [arduino in:pin0] Waiting for Arduino
6 Oct 19:01:05 - [log] [arduino in:pin0] Waiting for Arduino
6 Oct 19:01:07 - [log] [arduino in:pin0] Waiting for Arduino
6 Oct 19:01:09 - [log] [arduino in:pin0] Waiting for Arduino
6 Oct 19:01:11 - [log] [arduino in:pin0] Waiting for Arduino
6 Oct 19:01:13 - [log] [arduino in:pin0] Waiting for Arduino
6 Oct 19:01:15 - [log] [arduino in:pin0] Waiting for Arduino
6 Oct 19:01:17 - [log] [arduino in:pin0] Waiting for Arduino

But it seem's the settings that I deployed have not been taken as there is definitely data that should be being read.

I know that the serial node seems to carry a warning in the debug window about possible hangs but not the arduino node.

ENHANCEMENT: highlight edited nodes that have not been deployed

As a feature request/enhancement it would be nice to highlight edited nodes that have not been yet been deployed. I've been confused a few times as to why something wasn't working only to realize I never clicked the deploy button.

Another option might be to have a checkbox for a "Deploy mode" - for active configuring this would deploy every time you saved changes to a node (and reduce the number of times one has to click deploy)

Node label colour

Is there a way to set the colour of the label text of a node ? I can obviously change the background colour of the node like this:

<script type="text/javascript"> RED.nodes.registerType('rfxcom out',{ category: 'output', defaults: { ... }, ***\* color:"#088247", **** inputs:1, outputs:0, icon: "serial.png", align: "right", label: function() { ... }, labelStyle: function() { return this.name?"node_label_italic":""; } }); But is there a key to set the font colour?

node/io/httpin.js bug ...

After 4+ hours of kicking myself for not being able to figure out the bug in my code ... I found that it wasn't. :-)

Small typo in line 107 in the httpin.js:

if (msg.payload && (method == "PUSH" || method == "PUT") ) {

Uh ... that PUSH ought to be POST.

if (msg.payload && (method == "POST" || method == "PUT") ) {

That small fix now has my project working exactly as I intended! ;-)

Node-RED is an amazing project ... things are coming together now!

Can't access "Import From" sub-menu

When you go to use the "Import From" sub-menu, it closes as your cursor moves over the gap between the main menu and the sub-menu. Occasionally if you jump across fast enough you can just about make it!

Http-In request body undefined?

Hi.

It seems that http-in node msg.req.body is undefined both for PUT/POST requests with application/json header (and json-encoded body) and for url-encoded body.

Maybe a "app.use(express.bodyParser());" at line 22 of red/ui.js could help?

Thx.

[Feature Request] Canvas node

Currently, to create a visualisation, users have to connect Node-RED to an external tool (d3+mqtt/processing/etc).

A canvas node, exposing the d3 API to the javascript handler would let users build simple visualisations directly into flows.

IRC output node doesn't seem to work with payload-only

Create a simple flow to receive on an MQTT topic and output to an IRC channel, say #mqtt

When the "send complete message object" is unticked, nothing gets through to the IRC channel (although it seems to hit other nodes like file out, debug etc)

Toggling the "send complete message object", redeploying and re-testing -> works.

[17:25:37] nodered ([email protected]) joined the channel.
[17:28:15] nodered ([email protected]) left IRC. (Client Quit)
[17:28:22] nodered ([email protected]) joined the channel.
[17:30:33] nodered1 ([email protected]) joined the channel.
[17:30:33] {"topic":"in","payload":"Hello everyone","qos":0,"retain":false,"_topic":"in"}
[17:30:37] nodered ([email protected]) left IRC. (Client Quit)
[17:31:11] nodered1 ([email protected]) left IRC. (Client Quit)
[17:31:17] nodered ([email protected]) joined the channel.
[17:35:27] nodered ([email protected]) left IRC. (Client Quit)
[17:35:33] nodered-bot ([email protected]) joined the channel.

ntwitter - Authorisation not working if restart of node-red

When fresh installing node-red and adding in twitter and oauth I am able to add a new twitter node and authorise the app perfectly fine. However if I restart the node server the credentials of the twitter account are missing.

If I then try to re-authorise I am forwarded to my twitter account, I get a success message saying I can then close then window but when I return to node-red I am left with the same "Click here to authenticate with Twitter".

I have tried removing nTwitter and OAuth via npm uninstall and re-installing but no luck.

Blinkstick memory leak

Running the blinkstick node generates this error after a while:

(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
    at process.EventEmitter.addListener (events.js:160:15)
    at process.on.process.addListener (node.js:768:26)
    at new BlinkStick (/home/nol/code/projects/node-    red/node_modules/blinkstick/blinkstick.js:167:11)
    at Object.module.exports.findFirst (/home/nol/code/projects/node-    red/node_modules/blinkstick/blinkstick.js:491:22)
    at BlinkStick.<anonymous> (/home/nol/code/projects/node-red/nodes/hardware/76-blinkstick.js:38:31)
    at BlinkStick.EventEmitter.emit (events.js:95:17)
    at BlinkStick.Node.receive (/home/nol/code/projects/node-red/red/nodes.js:178:10)

Looks like calling findFirst everytime a message is received is not a good idea.

Broken flow -> node red can't be started until flow is deleted

I was noodling around with the editor and happened to drag an Arduino input onto the canvas, but didn't wire it up because I didn't have hardware to hand. The rest of my flow was using MQTT, Debug, File and other nodes and worked as wired.

I was warned that I had something that wasn't connected when I clicked Deploy, but went ahead anyway.

After that, the server crashed and could not be restarted - it tried to reload the flow file on run and hit an error:

6 Sep 11:56:50 - ------------------------------------------
6 Sep 11:56:50 - [red] Loading workspace flow : flows_cortez.local.json
6 Sep 11:56:50 - [red] Server now running at http://127.0.0.1:1880

/Users/andyp/Development/github/node-red/nodes/hardware/35-arduino.js:77
    this.board = this.serverConfig.board;
                                  ^
TypeError: Cannot read property 'board' of undefined
    at new DuinoNodeIn (/Users/andyp/Development/github/node-red/nodes/hardware/35-arduino.js:77:32)
    at Object.module.exports.parseConfig (/Users/andyp/Development/github/node-red/red/nodes.js:269:18)
    at /Users/andyp/Development/github/node-red/red/server.js:88:34
    at fs.js:266:14
    at Object.oncomplete (fs.js:107:15)

I had to manually delete my flow file flows_cortez.local.json in order to successfully restart the server. Once I had done that, I was able to re-deploy the flow that was still live in the browser (after I had fixed it) - handy! :-)

Bind to 127.0.0.1

Hello,

Upon startup node-red states:

6 Nov 12:53:54 - [red] Server now running at http://127.0.0.1:1880/nodered/

But it is actually binding to 0.0.0.0:

nodejs  20224 root   11u  IPv4  98074      0t0     TCP *:1880 (LISTEN)

Please can you add an option to bind to a specific IP address/interface?
I plan to put node-red behind an HTTP proxy.

Thanks,

nick.

Labels for Outputs

It would be nice if there was a way to label the outputs, so that when I'm connecting nodes I could mouse over the output and see a tooltip pop-up that tells me what the label is.

msg values vs. statically set values on nodes

The more that I develop with node-red, I'm realizing that there might be an unwritten rule and expectations on nodes.

If a node has static configuration values, in most cases that I have seen these values can also be passed into the node as msg.values. I'm hoping that there is a consistency that all nodes will stick to (or that I can ask for?) on how these different value will interact within the node.

My first thoughts are that msg.values would always override the statically configured values, as this gives control to the "upstream" node. In this case the statically configured values are simple the "default" values, in case the incoming message does not provide them.

Is this a reasonable request, or possibly already an unwritten rule? I think that it would be very important at this stage to maybe make this declaration in node development, to allow node-red developers to have an expected behavior of all nodes?

Thoughts?

Scott

Inject Node - Not saving specific time setting

When adding in an inject node, setting a specific time and then deploying result in the node forgetting the setting.

E.g.
image

Then after clicking deploy you can check the inject node which now shows:
image

testing socket and tcp "nodes"

I've been trying to test these and running into issues with origin policy etc. Rather than show you my various attempts I wondered if you have test code for these?

The kind of thing I have in mind is to input data using jquery from a web page delivered from apache on the same host that's running node-red. I would expect to be able to use something like socket.io. My page would be able to check that the connection was made and then send topic and payload.

Anything like this available?

Is this really an issue? Well yes, because a little more doc is probably needed to ensure that people can easily do this. The best kind of doc IMHO is a very simple test page. Unlike the following, one that works.

    $(function() {
      console.log("jquery loaded");
      var socket = new io.Socket('127.0.0.1',{port:8080});
      console.log('connecting');
      socket.connect();
      socket.on('connect', function () {
        console.log("connected");
      });
      setTimeout(function() {
        console.log('sending'); // ideally wait for connect
        socket.send({"payload":"sdfghjk"});
      },1000);
    });

The above throws origin policy errors if I include socket.io from localhost:80. It hangs if I assume that it's available from 8080 (which is the port I chose for the socket node - http://localhost:8080/socket.io/socket.io.js is the place usually recommended.)

BTW. I'm not stuck on socket.io. Just looking for a simple test.

Http Request Node Handling 301 Redirects

When recently trying to connect to xively feeds I seem to run in to 301 redirects which are then not followed. I assume this is something to do with node not handling redirects. Would it be feasible to have the option added to the http request node for the user to select if they want to follow redirects up to x amount of times?

Blank nodes - inconsistent labels

When new/blank nodes are dragged onto desktop - some have labels that are same as their names, but some are blank, (or something else)... should they all be consistent ?

TypeError: Converting circular structure to JSON

The error occurred while trying to use http(in) node with debug node. Assuming http(in) creates a Web service listening to incoming requests.

  1. Import

[{"id":"796b9bad.869464","type":"debug","name":"","active":true,"complete":true,"x":381,"y":58,"wires":[]},{"id":"7f13f051.80ec1","type":"http in","name":"","url":"/x","method":"get","x":200,"y":114,"wires":[["796b9bad.869464"]]}]

  1. Deploy

  2. Access http://localhost:1880/x

TypeError: Converting circular structure to JSON
at Object.stringify (native)
at Function.DebugNode.send (/node-red/nodes/core/58-debug.js:48:30)
at DebugNode. (/node-red/nodes/core/58-debug.js:34:18)
at DebugNode.EventEmitter.emit (events.js:96:17)
at DebugNode.Node.receive (/node-red/red/nodes.js:178:10)
at HTTPIn.Node.send (/node-red/red/nodes.js:166:34)
at callback (/node-red/nodes/io/21-httpin.js:27:8)
at callbacks (/node-red/node_modules/express/lib/router/index.js:164:37)
at param (/node-red/node_modules/express/lib/router/index.js:138:11)
at pass (/node-red/node_modules/express/lib/router/index.js:145:5)

Remark: Does only occur if deploy "Show complete msg object?" is selected. Otherwise there's no error (and no debug output either).

tcp-out only sends payload

If some cases you only need the payload when connecting to other systems. However, if you are connecting with another system that also has a pub/ sub model it would be very useful to have topic as well.

So if I wire, say, and inject to tcp out, I get both topic and payload that the inject sends.

One workaround is to use a function to wrap the topic into the payload. But that's ugly.

Mobile/Tablet Support

We want to get the UI working on tablets.

There is some early support already in there for touch events, but it is not complete. For example, you can start to drag a new link between nodes, but it doesn't end properly.

The layout could also do with being optimised.

Function Changes

  • enable dragging out of palette
  • prevent native zoom
  • enable pinch-zoom in workspace ( PR coming from @TJKoury )
  • unable to wire nodes together (a3dea6e)
  • double tap to edit rather than long-touch (ec5985e)
  • how to delete a node (radial menu: e524393)
  • how to undo change (radial menu: e524393)
  • how to group select (lasso) - long-touch to disable scroll/enable lasso? (0e8f073)
  • import flow placement - click to place, needs a visual cue to touch as you don't drag the nodes
  • pinch zoom deselects current selection
  • pinch zoom triggers radial menu (2fa82d9)
  • trigger radialMenu on long-touch with link selected

Mobile-specific UI changes

  • decide on server-side or client-side mobile detection (ie serve mobile.html, or insert mobile specific css/javascript adaptations)
  • mobile-only tool bar to enable delete/undo/other? actions (not needed due to radialMenu)
  • sidebar resize target needs to be more obvious (aa4bf4d)
  • sidebar drag in from RH side (aa4bf4d)
  • drop-down menu changed to be slide-in menu
  • palette drag in from LH side

Debug Status Indicator Colors, or?

I'm finding that understanding if a debug node is on or off is very difficult for my colorblindness.

Is there a way to make the colors a more blatant green/red, or to have a tooltip that would indicate the current status?

Unhandled exception in tcp listener

Hi.

I have a simple flow with a tcp listener that sometimes fails (i.e. node process crashes) with following log:

26 Oct 03:23:58 - [log] [tcp out:ceaac830.315538] connection from 158.255.211.141:48219
26 Oct 03:23:59 - [red] Uncaught Exception:
26 Oct 03:23:59 - Error: read ECONNRESET
at errnoException (net.js:901:11)
at TCP.onread (net.js:556:19)

Is there anything I can do to prevent this?

Thanks!

Accommodate poor typists

I know I should try harder but I think a great role of this awesome tool is to be able to lash up quick demos. It's too easy to make mistakes ATM.

  1. When you use inject to create a json object it would be nice if inject did the encoding and would not save unless the json was lint-free. A check-box option I think so you have a choice of text or object
  2. Similarly, functions should not save unless the javascript therein is lint-free.

When you make errors in functions at run time the resulting messages are not that clear. This is less of a problem if typos etc are eliminated as above.

Headers in "http response" node

Hello,
I have started using node-red....it's great tool !
I have a question about "http response" node : I don't understand what is the syntax to set "headers" field in the message.
I have graph with an "http in" mapped on "/test" and a "function" node beetwen "http in" node and "http response" node.
Inside "function" node I set msg.payload and msg.statusCode and all works fine.
How can I set "headers" field ? Is it a JSON object in the form { 'headername' : 'value' } ?
I have tried this way but it doesn't work.

Paolo.

HTML node?

This is more for discussion than anything . I think a node that would allow you to deploy a HTML page would finish the loop from hardware/software. Maybe allowing the node to just have you paste your HTML directly into a text area and as with the http posts select a subdirectory/file name e.g server/topic/name.HTML format. However I know this then would spark the argument for other languages etc but at the very least it would allow you to link a http post node to a HTML form and easily pass the form output which could then be stored in the mongodb etc.

Anyway just an idea for now. It could allow me to totally ditch my lighttpd server.

Headless Mode

The editor UI is always available when running. It is possible to secure, but there may be scenarios that you want to turn off the UI entirely - a headless mode.

  • New setting option to enable headless mode
  • Do not add core express routes if set (or don't create the app at all?)
  • Update Inject/Debug nodes to honour the setting as well

Arduino Input Node - State change for digital not working?

Hi,

When running the following:

image

[{"id":"71664c2f.8e99b4","type":"arduino-board","repeat":"1000","device":"/dev/ttyACM0"},{"id":"54431023.abbcf","type":"arduino in","name":"","pin":"4","state":"INPUT","arduino":"71664c2f.8e99b4","x":251,"y":200,"wires":[["ce99b356.31665"]]},{"id":"254c9827.dab368","type":"arduino out","name":"","pin":"4","state":"OUTPUT","arduino":"71664c2f.8e99b4","x":403,"y":338,"wires":[]},{"id":"9adaa94d.652558","type":"inject","name":"","topic":"","payload":"1","repeat":"","crontab":"","once":false,"x":162,"y":312,"wires":[["254c9827.dab368"]]},{"id":"c68ba83.f397458","type":"inject","name":"","topic":"","payload":"0","repeat":"","crontab":"","once":false,"x":171,"y":377,"wires":[["254c9827.dab368"]]},{"id":"ce99b356.31665","type":"debug","name":"","active":true,"complete":"true","x":481,"y":189,"wires":[]}]

I do not see anything in the debug window when clicking the inject nodes. I am running an LED from the pin which is turning off and on but the arduino input node is not giving me a value in the debug window.

This seems to only be affecting digital as reading values to the debug window on analogue pins works fine for me.

I would expect to be seeing 1's and 0's depending if the pin is going high or low.

'Save' without 'Deploy'

Currently, you can only deploy the flows when a material change is made to them. Simply moving the nodes around isn't enough.

It should be possible to deploy such changes (ie, where x/y have changed but nothing else), without restarting the whole flow from scratch.

Locatable user directory

Currently, we need write access in the node-red install directory for following things:

  • flow file
  • credentials file
  • libraries under lib/ (flows/functions/templates)

and arguably settings.js.

The directory containing all of these things should be configurable.

This will allow node-red to be installed globally (as administrator), but allow normal users to run with their own 'workspace'.

missing post vars from httpin

flow: httpin (post) -> function -> httpout
in the function I tried to pick up msg.req.body. this was undefined.
I then applied debug to output of httpin and I get:

{ "req": { "_readableState": { "highWaterMark": 16384, "buffer": [], "length": 0, "pipes": null, "pipesCount": 0, "flowing": false, "ended": false, "endEmitted": false, "reading": false, "calledRead": false, "sync": true, "needReadable": false, "emittedReadable": false, "readableListening": false, "objectMode": false, "defaultEncoding": "utf8", "ranOut": false, "awaitDrain": 0, "readingMore": false, "decoder": null, "encoding": null }, "readable": true, "domain": null, "_events": {}, "_maxListeners": 10, "socket": { "_connecting": false, "_handle": { "fd": 14, "writeQueueSize": 0, "owner": "[circular]", "reading": true }, "_readableState": { "highWaterMark": 16384, "buffer": [], "length": 0, "pipes": null, "pipesCount": 0, "flowing": false, "ended": false, "endEmitted": false, "reading": true, "calledRead": true, "sync": false, ....

.. in which the posted vars are not included.

is this the same as the closed issue 17?

Node Icons not in co-located with node defintions

Currently, all nodes are defined under the nodes/ directory.
The icons they use are under the public/icons/ directory.

This means, unless your new node is using one of the 'stock' icons, it cannot be simply unzipped in the nodes directory; the icon has to be copied over.

The icons should be under the nodes/ directory as well, with a suitably intelligent express route to find them.

(It is possible this all goes away if/when we make the nodes npm installable...)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.