|
[{"id":"dbfdd28e.d60f","type":"tab","label":"Flow 5","disabled":false,"info":""},{"id":"5f0514d3.9aba74","type":"inject","z":"dbfdd28e.d60f","name":"Test ${LOGNAME}","topic":"","payload":"${LOGNAME}","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":"","x":150,"y":120,"wires":[["7a0721b4.ae0be"]]},{"id":"f9f1872f.fa0d6","type":"debug","z":"dbfdd28e.d60f","name":"test 3","active":true,"console":"false","complete":"true","x":650,"y":240,"wires":[]},{"id":"2bc90895.53dbb8","type":"inject","z":"dbfdd28e.d60f","name":"Test ${FOO}","topic":"","payload":"${FOO}","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":"","x":130,"y":240,"wires":[["f9f1872f.fa0d6"]]},{"id":"e0374b07.e54ec","type":"inject","z":"dbfdd28e.d60f","name":"","topic":"","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":"","x":110,"y":300,"wires":[["ff27a66a.07cde8"]]},{"id":"ff27a66a.07cde8","type":"function","z":"dbfdd28e.d60f","name":"Use env.get(\"FOO\") in a function","func":"//var env = global.get('env');\nmsg.payload = env.get(\"FOO\");\nreturn msg;","outputs":1,"noerr":0,"x":410,"y":300,"wires":[["aa22d8a5.06c008"]]},{"id":"aa22d8a5.06c008","type":"debug","z":"dbfdd28e.d60f","name":"test 4","active":true,"console":"false","complete":"true","x":650,"y":300,"wires":[]},{"id":"f08f319e.a12e4","type":"inject","z":"dbfdd28e.d60f","name":"Test ${HOSTNAME}","topic":"","payload":"${HOSTNAME}","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":"","x":150,"y":180,"wires":[["c73c66d3.19839"]]},{"id":"7a0721b4.ae0be","type":"debug","z":"dbfdd28e.d60f","name":"test 1","active":true,"console":"false","complete":"true","x":650,"y":120,"wires":[]},{"id":"c73c66d3.19839","type":"debug","z":"dbfdd28e.d60f","name":"test 2","active":true,"console":"false","complete":"true","x":650,"y":180,"wires":[]},{"id":"6729b0b3.7e7ac","type":"inject","z":"dbfdd28e.d60f","name":"","topic":"","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"x":110,"y":360,"wires":[["d88711ed.141798"]]},{"id":"f73e7363.b7b2d","type":"debug","z":"dbfdd28e.d60f","name":"test 5","active":true,"console":"false","complete":"true","x":650,"y":360,"wires":[]},{"id":"d88711ed.141798","type":"change","z":"dbfdd28e.d60f","name":"Use ${FOO} in a change","rules":[{"t":"set","p":"payload","pt":"msg","to":"${FOO}","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":390,"y":360,"wires":[["f73e7363.b7b2d"]]},{"id":"7efbc5.9e07dc3c","type":"switch","z":"dbfdd28e.d60f","name":"Check payload for loged in user","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"${LOGNAME}","vt":"str"},{"t":"neq","v":"${LOGNAME}","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":410,"y":440,"wires":[["f3f4cb65.6c45e8"],["db49f300.b7ebc"]]},{"id":"30c4c72d.02104","type":"comment","z":"dbfdd28e.d60f","name":"Before using you must make changes to settings.js - see the info bar for details.","info":"Environmental variables (enter 'env' in a terminal to see which can be used) can be accessed by adding 'env:require(env)' to the 'functionGlobalContext:' section of the settings.js file. Once entered you can access them in any node that has a text field (a/z) or in a function node.\n\nFor example: to use in a text (a/z) field such as an INJECT node. use the format: $(LOGNAME). (Note: in newer versions of Node-RED, the Inject now has an option to set the payload to '$ env variable' - Just use the name of the variable like 'LOGNAME'.\n\nTo use in a FUNCTION use the following:\n\tvar env = global.get('env');\n\tmsg.payload = env.LOGNAME;\n\nSPECIAL CASES:\nIf you want to use HOSTNAME or declare your own environmental variable, you must make an additional change to the settings.js file. Add the following lines just before the line 'module.exports = {':\n\tprocess.env.HOSTNAME = require('os').hostname();\n\tprocess.env.FOO = 'just another bar';\n\nOnce you have made the changes to the settings.js file, stop/restart node-red to make them avaliable for use.\nYou can now use either as explained above. Examples are in the flows.\n","x":420,"y":60,"wires":[]},{"id":"d605f74f.cbfe78","type":"inject","z":"dbfdd28e.d60f","name":"","topic":"","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"x":110,"y":520,"wires":[["ffeda30.4c3a0e"]]},{"id":"ffeda30.4c3a0e","type":"function","z":"dbfdd28e.d60f","name":"Use env.get(\"LOGNAME\") in a function","func":"msg.payload = env.get(\"LOGNAME\");\nreturn msg;","outputs":1,"noerr":0,"x":410,"y":520,"wires":[["15f974a.743560b"]]},{"id":"15f974a.743560b","type":"debug","z":"dbfdd28e.d60f","name":"test 8","active":true,"console":"false","complete":"true","x":650,"y":520,"wires":[]},{"id":"a593e6f2.2abbb","type":"inject","z":"dbfdd28e.d60f","name":"Use $(LOGNAME)","topic":"","payload":"$(LOGNAME)","payloadType":"str","repeat":"","crontab":"","once":false,"x":150,"y":420,"wires":[["7efbc5.9e07dc3c"]]},{"id":"67433ca0.b8f6dc","type":"inject","z":"dbfdd28e.d60f","name":"Use JohnDoe","topic":"","payload":"JohnDoe","payloadType":"str","repeat":"","crontab":"","once":false,"x":130,"y":460,"wires":[["7efbc5.9e07dc3c"]]},{"id":"f3f4cb65.6c45e8","type":"debug","z":"dbfdd28e.d60f","name":"test 6 - true","active":true,"console":"false","complete":"true","x":670,"y":420,"wires":[]},{"id":"db49f300.b7ebc","type":"debug","z":"dbfdd28e.d60f","name":"test 6 - false","active":true,"console":"false","complete":"true","x":670,"y":460,"wires":[]}] |
AS per the comments in the comment node of the sample flow provided above AND at this https://flows.nodered.org/flow/8a13d11dfe80e279df83341e3e17bcc1
It's mentioned:
can be accessed by adding 'env:require(env)' to the 'functionGlobalContext:' section of the settings.js file.
Doing that generates and error when starting node-red:
Error: Cannot find module 'env'
HOWEVER using
env: process.env
works perfectly.
Just need to update the contents of the comment node.