External node needed:
node-red-contrib-fan
node-red-contrib-counter
It is handy to split flow into groups. Yes, I know the latest version allows that in the edit screen.
I'm not up to speed with it and so use the fan
node.
This is being typed on the fly. I don't know how to structure it in an easy way.
You will see things in the flow which may make you ask: "Why?" Please read this all and I hope it will all make sense.
Scenario:
I am building (another) clock.
RasPi (headless) and s 20x4 LCD.
I know that is making my life difficult, but I seem to enjoy trying hard things.
And it isn't that I want to drag anyone else into this, but I'm stuck.
I haven't even got the buttons connected yet.
At the top I build the menu structure and save it to global.context.
Forget about the next bit about setting the global context (two inject
nodes and a change
node)
Down a bit further is an inject
node: Menu
This calls up the menu on the display. Doesn't matter if you don't have one.
Going to the right you get to change
node. (Start menu at line?) This is because I can only show 4 lines at a time.
If there is more than 4, the menu is grouped into blocks of 4.
That then goes into a function
node that spits out 4 lines of text that are formatted with position data at the end. (@x,y
)
That output is sent into the counter
node that adds a msg.count
to the messages. This is used to control the y
position of the message. (See template
node)
That then gets it's topic
set and sent to the display.
Then, it loops back to the left to a switch
node. When all 4 lines are shown, it goes to a trigger
node. (Basically a delay, but indulge me doing it this way)
That then goes into another function
node.
That prints >
at a position.
Part of that is got from global.LINE
. I'll get to that very shortly, as that is where the problems happen.
Just under this bit of code you will see two inject
nodes. Up
and Down
.
The switch
nodes check that the MENU is being displayed.
The next node is a change
node. This sets msg.payload
to global.LINE
.
Next is a switch
node checking if 0
or 4
have been exceeded. (Lines on the display.)
Pressing the Down
4 times the switch
node sends the output to output #1.
That goes down to the +4
function
node below.
That adjusts the global_index
to it's value +4 and saves it.
Then the .... wires loop back to the left (and up) to re-do the menu.
It works to here.
And you can press the Down
button to move to the other 4 items.
Yes, 3 of them are dummies.
So the problem?
(Yes, I also get that the up
and down
seem back to front, but down moves the cursor down the screen - up in menu items.)
So: Page 2, the cursor is blinking away happily on the top line. (0
)
If you press the Up
button, it goes back to the previous screen.
But.... The cursor needs to be at the bottom.
Now it all starts to fall apart!
Just a bit further down, you see an inject
and function
node. The inject
node pulses every 0.5 seconds.
That shows me global.LINE
.
On the first menu page, as you press the Down
button, you will see this increment.
When it gets to the new page, it is back to 0
. Fair enough.
So on page 2, top line: You press the Up
button.
The display is wiped, the original 4 lines are printed and the cursor is supposed to be at 0,3
.
This is done by function
node called >
you saw before when the display had been given 4 lines.
global.LINE
is changed to 3
if you look in the -4
function
node.
You probably won't see it as it is reset to 0
and I don't know why.
There are 4 nodes on the flow (and nowhere else on any other flow on the machine) that adjust the global.LINE
value.
They are the -1
, +1
, +4
and -4
.
Yes, there are the other two at the bottom.
One is simply showing you (node.status
) on the function
node connected to the repeating inject
node, and the other one SET
used to set global.LINE
to 3
for testing.
How do I see this is actually happening?
Towards the top you will see a lovely inject
node called: LOOK AT ME in the docs.
Just below it is a link - in
node.
(If you want)
Press the Down
and Up
buttons and see what is happening and how the node at the bottom is showing you the LINE
value.
Go to the second page and press the Up
button..
Now: delete the link
on that link - in
node below the inject
node.
Press the Down
button 4
times.
Look that LINE
is showing.
Then press the Up
button.
You will see "Line value set to 3" clearly in the debug
window.
(That is to set the cursor on line .... 3)
Then a "Starting 1" message. That is from the function
node printing out the lines.
The you see..... "Y is set to 0"
And Y
was just shown as set to 3
.
How does it get wiped?
Go to the second page of the Menu and delete the afore mentioned link
.
Press the Up
button.
You can see LINE
is still 3
.
Now go to the inject
node "LOOK AT ME in the docs" and press it.
LINE
gets changed to 0
, and I don't know why.
[{"id":"df3a8af4.5db058","type":"comment","z":"51326072.289f98","name":"Menus *","info":"Build the menu and store it in global context.","x":230,"y":570,"wires":[]},{"id":"5ba016aa.9913a8","type":"inject","z":"51326072.289f98","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":150,"y":660,"wires":[["339ed550.edc292","8536c3d.4319f4"]]},{"id":"339ed550.edc292","type":"function","z":"51326072.289f98","name":"","func":"msg.menu = {\n 1:\"> Show clock/time\",\n 2:\"> Show alarms\",\n 3:\"> Edit time/date\",\n 4:\"> Edit alarm/s\",\n 5:\"> Alarm run time\",\n 6:\"> menu 6\",\n 7:\"> menu 7\",\n 8:\"> menu 8\"\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":320,"y":660,"wires":[["57451be6.c4378c","965a4efd.751c18"]]},{"id":"57451be6.c4378c","type":"debug","z":"51326072.289f98","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":510,"y":660,"wires":[]},{"id":"965a4efd.751c18","type":"change","z":"51326072.289f98","name":"Global set","rules":[{"t":"set","p":"menu","pt":"global","to":"menu","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":520,"y":700,"wires":[[]]},{"id":"cef8e62f.ce34","type":"link in","z":"51326072.289f98","name":"Menu","links":["e97ee73c.f15b9"],"x":225,"y":1060,"wires":[["fb8f4a36.d133a8"]]},{"id":"737bc492.63dee4","type":"change","z":"51326072.289f98","name":"CLS","rules":[{"t":"set","p":"payload","pt":"msg","to":"CLS","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":880,"y":1010,"wires":[["bc929d43.947888","5db4e9b3.848618","1a874592.53e5b2"]]},{"id":"bc929d43.947888","type":"link out","z":"51326072.289f98","name":"LCD Display CTL commands","links":["1e4ce1b3.80123e"],"x":1400,"y":1010,"wires":[],"l":true},{"id":"779bdb9.a9a22a4","type":"change","z":"51326072.289f98","name":"Start menu at line?","rules":[{"t":"set","p":"payload","pt":"msg","to":"menu_index","tot":"global"},{"t":"set","p":"menu","pt":"msg","to":"menu","tot":"global"}],"action":"","property":"","from":"","to":"","reg":false,"x":920,"y":1060,"wires":[["4492436a.0bba2c","7146361e.b95538"]]},{"id":"8536c3d.4319f4","type":"change","z":"51326072.289f98","name":"","rules":[{"t":"set","p":"menu_index","pt":"global","to":"0","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":360,"y":620,"wires":[[]]},{"id":"2834ad20.8140e2","type":"inject","z":"51326072.289f98","name":"Menu","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":200,"y":1110,"wires":[["fb8f4a36.d133a8"]]},{"id":"79066ec1.f3c33","type":"debug","z":"51326072.289f98","name":"Message","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1420,"y":1210,"wires":[]},{"id":"4492436a.0bba2c","type":"function","z":"51326072.289f98","name":"Display 4 lines on screen","func":"var starting = parseInt(msg.payload) + 1;\nvar ending = starting + 4;\n\nnode.warn(\"Starting \" + starting)\n//node.warn(\"Ending \" + ending)\n//node.warn(msg.menu);\n\nif (starting < ending)\n{\n //\n pop();\n}\nreturn;\n\nfunction pop() {\n// node.warn(\"Loop\" + starting);\n// node.warn(\"Ending \" + ending);\n node.send({payload: msg.menu[starting]});\n starting +=1;\n if (starting < ending){\n pop();\n }\n}\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1170,"y":1060,"wires":[["67e331bf.2fb5f8"]]},{"id":"7146361e.b95538","type":"debug","z":"51326072.289f98","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":880,"y":1110,"wires":[]},{"id":"bc9bd74f.b7b978","type":"inject","z":"51326072.289f98","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"0","payloadType":"num","x":240,"y":770,"wires":[["c43ead33.c62478"]]},{"id":"61087487.918824","type":"inject","z":"51326072.289f98","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"1","payloadType":"num","x":240,"y":800,"wires":[["c43ead33.c62478"]]},{"id":"c43ead33.c62478","type":"change","z":"51326072.289f98","name":"","rules":[{"t":"set","p":"menu_index","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":430,"y":780,"wires":[["19a36f72.7c1c89"]]},{"id":"67e331bf.2fb5f8","type":"counter","z":"51326072.289f98","name":"","init":"-1","step":"1","lower":"","upper":"","mode":"increment","outputs":"1","x":1180,"y":1110,"wires":[["c2e1550c.c19d9"]]},{"id":"c2e1550c.c19d9","type":"template","z":"51326072.289f98","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{{{payload}}}@0,{{{count}}}","output":"str","x":890,"y":1170,"wires":[["adac1b1.f2ae7e8"]]},{"id":"b93cb59b.e0c17","type":"link out","z":"51326072.289f98","name":"Message to LCD display","links":["402996d9.ab9ce"],"x":1660,"y":1170,"wires":[],"l":true},{"id":"5db4e9b3.848618","type":"debug","z":"51326072.289f98","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":910,"y":960,"wires":[]},{"id":"b3239fab.cff44","type":"change","z":"51326072.289f98","name":"Reset","rules":[{"t":"set","p":"reset","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":1030,"y":1110,"wires":[["67e331bf.2fb5f8"]]},{"id":"2f8423db.8f0644","type":"delay","z":"51326072.289f98","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":1060,"y":1190,"wires":[["adac1b1.f2ae7e8"]]},{"id":"adac1b1.f2ae7e8","type":"fan","z":"51326072.289f98","name":"","x":1260,"y":1170,"wires":[["79066ec1.f3c33","c5b0f5e9.6feee","92c97542.7768f","bef2867.88ad778","df0e2ee3.af4ac8"]]},{"id":"c5b0f5e9.6feee","type":"debug","z":"51326072.289f98","name":"COUNT","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"count","targetType":"msg","statusVal":"","statusType":"auto","x":1420,"y":1250,"wires":[]},{"id":"19a36f72.7c1c89","type":"debug","z":"51326072.289f98","name":"STARTING AT","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":660,"y":780,"wires":[]},{"id":"df0e2ee3.af4ac8","type":"switch","z":"51326072.289f98","name":"Menu displayed","property":"count","propertyType":"msg","rules":[{"t":"eq","v":"3","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":500,"y":1240,"wires":[["25d98da4.8c2442","b41cb7e5.7df81"]]},{"id":"92c97542.7768f","type":"change","z":"51326072.289f98","name":"text","rules":[{"t":"set","p":"topic","pt":"msg","to":"text","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1410,"y":1170,"wires":[["b93cb59b.e0c17"]]},{"id":"c7b890b7.6d73d8","type":"change","z":"51326072.289f98","name":">","rules":[{"t":"set","p":"payload","pt":"msg","to":">@0,0","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":830,"y":1290,"wires":[["3c76d420.a1947c","92bb1bdc.5bbea"]]},{"id":"3c76d420.a1947c","type":"debug","z":"51326072.289f98","name":"Message","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1030,"y":1290,"wires":[]},{"id":"25d98da4.8c2442","type":"debug","z":"51326072.289f98","name":"COUNT","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":540,"y":1290,"wires":[]},{"id":"b41cb7e5.7df81","type":"trigger","z":"51326072.289f98","name":"D","op1":"","op2":"0","op1type":"nul","op2type":"str","duration":"2500","extend":false,"units":"ms","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":660,"y":1240,"wires":[["f5ba0671.28e6"]]},{"id":"975f857.2480c78","type":"change","z":"51326072.289f98","name":"Blink ON","rules":[{"t":"set","p":"payload","pt":"msg","to":"BLK-ON","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1190,"y":1240,"wires":[["bc929d43.947888"]]},{"id":"87e0389e.935588","type":"change","z":"51326072.289f98","name":"Blink ON","rules":[{"t":"set","p":"payload","pt":"msg","to":"BLK-ON","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":650,"y":830,"wires":[[]]},{"id":"9b7af149.60fc58","type":"change","z":"51326072.289f98","name":"Blink OFF","rules":[{"t":"set","p":"payload","pt":"msg","to":"BLK-OFF","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1180,"y":980,"wires":[["bc929d43.947888"]]},{"id":"35f294bd.361dbc","type":"inject","z":"51326072.289f98","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":1100,"y":930,"wires":[["9b7af149.60fc58"]]},{"id":"bef2867.88ad778","type":"change","z":"51326072.289f98","name":"Set What screen (menu)","rules":[{"t":"set","p":"SCREEN","pt":"global","to":"menu","tot":"str"},{"t":"set","p":"LINE","pt":"global","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1520,"y":1090,"wires":[[]]},{"id":"f24a5a0c.272178","type":"fan","z":"51326072.289f98","name":"","x":740,"y":1060,"wires":[["779bdb9.a9a22a4","b3239fab.cff44","737bc492.63dee4"]]},{"id":"fb8f4a36.d133a8","type":"fan","z":"51326072.289f98","name":"","x":310,"y":1060,"wires":[["f24a5a0c.272178","34fc7879.6b6c48"]]},{"id":"1b61102f.015f5","type":"comment","z":"51326072.289f98","name":"Check what screen is active *","info":"Needs to check what screen is active.\nLot of work needed here.\nBut for now not needed while testing menu.","x":530,"y":1040,"wires":[]},{"id":"1ff7c2cc.b3575d","type":"link in","z":"51326072.289f98","name":"Up","links":["1158824c.4f2fc6"],"x":525,"y":1390,"wires":[["482e8079.99e45"]]},{"id":"e79d0955.758548","type":"link in","z":"51326072.289f98","name":"Down","links":["c91ebda0.328b8"],"x":525,"y":1440,"wires":[["b7517494.8e4a68"]]},{"id":"482e8079.99e45","type":"switch","z":"51326072.289f98","name":"Menu?","property":"SCREEN","propertyType":"global","rules":[{"t":"eq","v":"menu","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":620,"y":1390,"wires":[["2ec7b704.c2cbb"]]},{"id":"b7517494.8e4a68","type":"switch","z":"51326072.289f98","name":"Menu?","property":"SCREEN","propertyType":"global","rules":[{"t":"eq","v":"menu","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":620,"y":1440,"wires":[["4e4994fd.d1df64"]]},{"id":"2ec7b704.c2cbb","type":"change","z":"51326072.289f98","name":"get global.LINE","rules":[{"t":"set","p":"payload","pt":"msg","to":"LINE","tot":"global"}],"action":"","property":"","from":"","to":"","reg":false,"x":770,"y":1390,"wires":[["2566ec3e.48963c","f3fe43f3.8f0d58"]]},{"id":"4e4994fd.d1df64","type":"change","z":"51326072.289f98","name":"get global.LINE","rules":[{"t":"set","p":"payload","pt":"msg","to":"LINE","tot":"global"}],"action":"","property":"","from":"","to":"","reg":false,"x":770,"y":1440,"wires":[["45726900.fc2e28","84902981.d2faf"]]},{"id":"8d867ec4.eac3d","type":"function","z":"51326072.289f98","name":"+ 1","func":"var x = msg.payload + 1;\nglobal.set(\"LINE\",x);\n\nmsg.payload = \">@0,\" + x;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1070,"y":1440,"wires":[["92c97542.7768f","f0c6b22a.9767a"]]},{"id":"2566ec3e.48963c","type":"switch","z":"51326072.289f98","name":"0?","property":"payload","propertyType":"msg","rules":[{"t":"cont","v":"0","vt":"str"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":920,"y":1390,"wires":[["ab687dda.5b0bb8","264335ed.e72fe2","cd23ad9a.74d988"],["a5e40b9.35c4c78","948c1604.8a333"]]},{"id":"45726900.fc2e28","type":"switch","z":"51326072.289f98","name":"4?","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"3","vt":"num"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":920,"y":1440,"wires":[["86f2a8b6.c88db8","cd23ad9a.74d988"],["8d867ec4.eac3d","a5e40b9.35c4c78"]]},{"id":"d26ed2d3.877588","type":"inject","z":"51326072.289f98","name":"Up","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":470,"y":1340,"wires":[["482e8079.99e45"]]},{"id":"c168f079.740828","type":"inject","z":"51326072.289f98","name":"Down","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":470,"y":1490,"wires":[["b7517494.8e4a68"]]},{"id":"f0c6b22a.9767a","type":"debug","z":"51326072.289f98","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1310,"y":1370,"wires":[]},{"id":"948c1604.8a333","type":"function","z":"51326072.289f98","name":"- 1","func":"var x = msg.payload - 1;\nglobal.set(\"LINE\",x);\n\nmsg.payload = \">@0,\" + x;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1070,"y":1390,"wires":[["92c97542.7768f"]]},{"id":"1a874592.53e5b2","type":"delay","z":"51326072.289f98","name":"","pauseType":"delay","timeout":"50","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":1030,"y":980,"wires":[["9b7af149.60fc58"]]},{"id":"3531e39e.b6c4fc","type":"link in","z":"51326072.289f98","name":"","links":["652a67dd.7a84d"],"x":785,"y":1010,"wires":[["737bc492.63dee4"]]},{"id":"34fc7879.6b6c48","type":"change","z":"51326072.289f98","name":"Hide clock","rules":[{"t":"set","p":"payload","pt":"msg","to":"close","tot":"str"},{"t":"set","p":"topic","pt":"msg","to":"control","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":450,"y":970,"wires":[["df73a991.eaeb6"]]},{"id":"df73a991.eaeb6","type":"link out","z":"51326072.289f98","name":"0","links":["e02268d.ffa8e18"],"x":585,"y":970,"wires":[]},{"id":"264335ed.e72fe2","type":"function","z":"51326072.289f98","name":"-4","func":"var x = global.get(\"menu_index\") || 0;\nx = x - 4;\nglobal.set(\"menu_index\",x);\nglobal.set(\"LINE\",3);\nnode.warn(\"Line value set to 3\");\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1070,"y":1500,"wires":[["944a0c7b.1ad3a"]]},{"id":"86f2a8b6.c88db8","type":"function","z":"51326072.289f98","name":"+4","func":"var x = global.get(\"menu_index\") || 0;\nx = x + 4;\nglobal.set(\"menu_index\",x);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1070,"y":1540,"wires":[["944a0c7b.1ad3a"]]},{"id":"15cd23e2.87af14","type":"link out","z":"51326072.289f98","name":"LCD Display CTL commands","links":["1e4ce1b3.80123e"],"x":1470,"y":1520,"wires":[],"l":true},{"id":"80256071.364cf8","type":"change","z":"51326072.289f98","name":"CLS","rules":[{"t":"set","p":"payload","pt":"msg","to":"CLS","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1260,"y":1520,"wires":[["944a0c7b.1ad3a","567090a7.7ca2c"]]},{"id":"944a0c7b.1ad3a","type":"link out","z":"51326072.289f98","name":"","links":["29ae477b.d12f88"],"x":1315,"y":1420,"wires":[]},{"id":"29ae477b.d12f88","type":"link in","z":"51326072.289f98","name":"","links":["944a0c7b.1ad3a"],"x":595,"y":1130,"wires":[["f24a5a0c.272178"]]},{"id":"567090a7.7ca2c","type":"debug","z":"51326072.289f98","name":"LOAD NEW MENU PAGE","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1410,"y":1460,"wires":[]},{"id":"84902981.d2faf","type":"debug","z":"51326072.289f98","name":"MAX value?","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":870,"y":1500,"wires":[]},{"id":"f3fe43f3.8f0d58","type":"debug","z":"51326072.289f98","name":"MIN value?","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":890,"y":1340,"wires":[]},{"id":"f5ba0671.28e6","type":"function","z":"51326072.289f98","name":">","func":"var y = global.get(\"LINE\");\n\nnode.warn(\"Y is set to \" + y);\n\nnode.status({text:y});\n\n\nmsg.payload = \">@0,\"+y;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":830,"y":1240,"wires":[["92bb1bdc.5bbea","3c76d420.a1947c"]]},{"id":"92bb1bdc.5bbea","type":"fan","z":"51326072.289f98","name":"","x":1030,"y":1240,"wires":[["975f857.2480c78","bef2867.88ad778","92c97542.7768f"]]},{"id":"3b22a226.b465e6","type":"inject","z":"51326072.289f98","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":670,"y":1310,"wires":[["f5ba0671.28e6"]]},{"id":"ab687dda.5b0bb8","type":"delay","z":"51326072.289f98","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":780,"y":1550,"wires":[[]]},{"id":"a5e40b9.35c4c78","type":"trigger","z":"51326072.289f98","name":"","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"5","extend":false,"units":"s","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":1080,"y":1340,"wires":[[]]},{"id":"cc1a9f81.ce7b2","type":"function","z":"51326072.289f98","name":"LINE value","func":"var y = global.get(\"LINE\");\n\nnode.status({text:y});\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":620,"y":1620,"wires":[[]]},{"id":"9c54a1.11a0fb6","type":"inject","z":"51326072.289f98","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"0.5","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":420,"y":1620,"wires":[["cc1a9f81.ce7b2"]]},{"id":"d66068ed.d166f","type":"inject","z":"51326072.289f98","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":940,"y":1660,"wires":[["94843779.f6146"]]},{"id":"94843779.f6146","type":"function","z":"51326072.289f98","name":"SET","func":"\nglobal.set(\"LINE\",3);\nnode.warn(\"Line value set to 3\");\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":940,"y":1700,"wires":[[]]},{"id":"cd23ad9a.74d988","type":"trigger","z":"51326072.289f98","name":"","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"5","extend":false,"units":"s","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":1080,"y":1580,"wires":[[]]},{"id":"1df632f6.f1a3b5","type":"comment","z":"51326072.289f98","name":"Don't worry about this.","info":"","x":440,"y":740,"wires":[]},{"id":"7b5790dc.a6dad8","type":"inject","z":"51326072.289f98","name":"LOOK AT ME in the docs","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":500,"y":1100,"wires":[["f24a5a0c.272178"]]},{"id":"e84ff176.3b5268","type":"comment","z":"51326072.289f98","name":"Show global.LINE value","info":"","x":570,"y":1590,"wires":[]}]
I know. It is a mess. I am developing it. Arduino code is different to Node Red, and the logic is different as all parts of Node-Red are active at all times.
That is why I have global.SCREEN
, LINE
and menu_index
.
Is what I wrote clear enough?