Hi Colin! Thanks for the answer. Yes, that's what I want, but I don't want to use the dashboard, I just want to control my inputs and outputs through a page made by myself.
Do you know how could I control and show every input and output?
This is my project now:
[{"id":"b394f1c9.465ec","type":"tab","label":"Flow 4","disabled":false,"info":""},{"id":"a9244ba0.6cc368","type":"debug","z":"b394f1c9.465ec","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":690,"y":160,"wires":[]},{"id":"739032d2.cd7b5c","type":"http in","z":"b394f1c9.465ec","name":"/plc","url":"/plc","method":"get","upload":false,"swaggerDoc":"","x":150,"y":320,"wires":[["72356951.90c558"]]},{"id":"72356951.90c558","type":"change","z":"b394f1c9.465ec","name":"change node","rules":[{"t":"set","p":"payload","pt":"msg","to":"","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":390,"y":320,"wires":[["c89a095f.ea22a8"]]},{"id":"c8e69d92.bea71","type":"debug","z":"b394f1c9.465ec","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":750,"y":380,"wires":[]},{"id":"8084b072.bd0b1","type":"http response","z":"b394f1c9.465ec","name":"","statusCode":"","headers":{},"x":770,"y":320,"wires":[]},{"id":"17ff3a17.4f1ce6","type":"mqtt in","z":"b394f1c9.465ec","name":"","topic":"I","qos":"2","datatype":"auto","broker":"b2f50d89.7375f","x":170,"y":160,"wires":[["4b450e49.acfe5"]]},{"id":"c89a095f.ea22a8","type":"template","z":"b394f1c9.465ec","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"<!DOCTYPE html>\n<html>\n<head>\n<style>\n\n.taula1 {\n\tpadding-bottom: 2em;\n}\n\ntable {\n font-family: arial, sans-serif;\n border-collapse: collapse;\n width: 100%;\n}\n\ntd, th {\n text-align: left;\n padding: 8px;\n}\n\ntr:nth-child(even) {\n background-color: #f3f7d0;\n width: 25%;\n}\n\nh2 {\n font-family: arial, sans-serif;\n}\n</style>\n</head>\n<body>\n\n<h2>PLC I/O</h2>\n\n<div class=\"taula1\">\n<table>\n <tr>\n <th>Digital inputs</th>\n <th></th>\n <th>Analog inputs</th>\n <th></th>\n </tr>\n <tr>\n <td>I0.0</td>\n <td>{{payload.inputs[0][0]}}</td>\n <td>I0.7</td>\n <td>{{payload.inputs[0][7]}}</td>\n </tr>\n <tr>\n <td>I0.1</td>\n <td>{{payload.inputs[0][1]}}</td>\n <td>I0.8</td>\n <td>{{payload.inputs[0][8]}}</td>\n </tr>\n <tr>\n <td>I0.2</td>\n <td>{{payload.inputs[0][2]}}</td>\n <td>I0.9</td>\n <td>{{payload.inputs[0][9]}}</td>\n </tr>\n <tr>\n <td>I0.3</td>\n <td>{{payload.inputs[0][3]}}</td>\n <td>I0.10</td>\n <td>{{payload.inputs[0][10]}}</td>\n </tr>\n <tr>\n <td>I0.4</td>\n <td>{{payload.inputs[0][4]}}</td>\n <td>I0.11</td>\n <td>{{payload.inputs[0][11]}}</td>\n </tr>\n <tr>\n <td>I0.5</td>\n <td>{{payload.inputs[0][5]}}</td>\n <td>I0.12</td>\n <td>{{payload.inputs[0][12]}}</td>\n </tr>\n <tr>\n <td>I0.6</td>\n <td>{{payload.inputs[0][6]}}</td>\n <td></td>\n <td> - </td>\n </tr>\n</table>\n</div>\n\n\n<div>\n<table>\n\t<tr>\n <th>Digital outputs</th>\n <th></th>\n <th>Analog outputs</th>\n <th></th>\n\t</tr>\n <tr>\n <td>Q0.0</td>\n <td>{{payload.outputs[0][0]}}</td>\n <td>A0.5</td>\n <td>{{payload.outputs[0][5]}}</td>\n\t</tr>\n <tr>\n <td>Q0.1</td>\n <td>{{payload.outputs[0][1]}}</td>\n <td>A0.6</td>\n <td>{{payload.outputs[0][6]}}</td>\n \t</tr>\n <tr>\n <td>Q0.2</td>\n <td>{{payload.outputs[0][2]}}</td>\n <td>A0.7</td>\n <td>{{payload.outputs[0][7]}}</td>\n \t</tr>\n <tr>\n <td>Q0.3</td>\n <td>{{payload.outputs[0][3]}}</td>\n <td></td>\n <td></td>\n \t</tr> \n <tr>\n <td>Q0.4</td>\n <td>{{payload.outputs[0][4]}}</td>\n <td></td>\n <td></td>\n \t</tr> \n</table>\n</div>\n\n</body>\n</html>\n","output":"str","x":600,"y":320,"wires":[["8084b072.bd0b1","c8e69d92.bea71"]]},{"id":"4b450e49.acfe5","type":"function","z":"b394f1c9.465ec","name":"","func":"var z, i, v;\nlet inputs = get;\nmsg.payload = flow.inputs[z][i];\nflow.set('inputs', inputs);\n","outputs":1,"noerr":0,"x":420,"y":160,"wires":[["a9244ba0.6cc368"]]},{"id":"b2f50d89.7375f","type":"mqtt-broker","z":"","name":"Localhost Broker","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]
And I know that I should do something like this in the function node:
var z, i, v;
let inputs = get;
msg.payload = flow.inputs[z][i];
flow.set('inputs', inputs);
but I'm not so good at javascript, and as you can see, I'm a bit lost.
Thank you,
Q.