GPIO get/read/display node?

Is there a node which can display the status of a GPIO pin?

I'm trying to debug a program and need a visual display of GPIO high/low status. I imagine a node which looks like the GPIO In node, but refreshed regularly (interval set inside node settings?).

Any thoughts?

All the best,
Dax.

If you feed the gpio In node into a debug node and select Node Status in the debug node then it will show you the state under the debug node.

Thanks Colin!

Hmm.. if the status is correct, then the GPIOs aren't being toggled at all. :thinking:
Or the input nodes aren't outputting constantly. I have enabled "Read initial state of pin on deploy/restart", but that suggests that state isn't read regularly.

I need to send a 4-bit message to 4 separate GPIOs. I found a flow which allows you to send multi-line exec node commands and set it up for that purpose:

[
    {
        "id": "1a73c740.e06d79",
        "type": "subflow",
        "name": "Execute Shell Script",
        "info": "",
        "in": [
            {
                "x": 100,
                "y": 200,
                "wires": [
                    {
                        "id": "662c3c62.43d624"
                    }
                ]
            }
        ],
        "out": [
            {
                "x": 960,
                "y": 280,
                "wires": [
                    {
                        "id": "9e92978.d8d0868",
                        "port": 0
                    }
                ]
            },
            {
                "x": 960,
                "y": 340,
                "wires": [
                    {
                        "id": "9e92978.d8d0868",
                        "port": 1
                    }
                ]
            },
            {
                "x": 960,
                "y": 400,
                "wires": [
                    {
                        "id": "9e92978.d8d0868",
                        "port": 2
                    }
                ]
            }
        ]
    },
    {
        "id": "dda86e6b.3b362",
        "type": "file",
        "z": "1a73c740.e06d79",
        "name": "Write script file",
        "filename": "filename",
        "filenameType": "msg",
        "appendNewline": true,
        "createDir": false,
        "overwriteFile": "false",
        "x": 860,
        "y": 140,
        "wires": [
            []
        ]
    },
    {
        "id": "7a2a96f.a52b268",
        "type": "exec",
        "z": "1a73c740.e06d79",
        "command": "mktemp",
        "addpay": false,
        "append": "",
        "useSpawn": "",
        "timer": "",
        "name": "",
        "x": 420,
        "y": 200,
        "wires": [
            [
                "9131a546.667eb8"
            ],
            [],
            []
        ]
    },
    {
        "id": "c9fb5364.0becc",
        "type": "file",
        "z": "1a73c740.e06d79",
        "name": "Delete script file",
        "filename": "filename",
        "filenameType": "msg",
        "appendNewline": true,
        "createDir": false,
        "overwriteFile": "delete",
        "x": 1020,
        "y": 480,
        "wires": [
            []
        ]
    },
    {
        "id": "9e92978.d8d0868",
        "type": "exec",
        "z": "1a73c740.e06d79",
        "command": " sh ",
        "addpay": true,
        "append": "",
        "useSpawn": "",
        "timer": "",
        "name": "Execute the shell script",
        "x": 690,
        "y": 340,
        "wires": [
            [
                "c9fb5364.0becc"
            ],
            [],
            []
        ]
    },
    {
        "id": "36f470a4.a6a84",
        "type": "exec",
        "z": "1a73c740.e06d79",
        "command": "chmod +x ",
        "addpay": true,
        "append": "",
        "useSpawn": "",
        "timer": "",
        "name": "",
        "x": 1040,
        "y": 200,
        "wires": [
            [
                "6ba1dbc1.d547b4"
            ],
            [],
            []
        ]
    },
    {
        "id": "662c3c62.43d624",
        "type": "change",
        "z": "1a73c740.e06d79",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "command",
                "pt": "msg",
                "to": "payload",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 230,
        "y": 200,
        "wires": [
            [
                "7a2a96f.a52b268"
            ]
        ]
    },
    {
        "id": "a61c48a5.e5dc88",
        "type": "change",
        "z": "1a73c740.e06d79",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "filename",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 860,
        "y": 200,
        "wires": [
            [
                "36f470a4.a6a84"
            ]
        ]
    },
    {
        "id": "9131a546.667eb8",
        "type": "function",
        "z": "1a73c740.e06d79",
        "name": "",
        "func": "msg.filename = msg.payload.trim();\nmsg.payload = msg.command;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 590,
        "y": 180,
        "wires": [
            [
                "dda86e6b.3b362",
                "a61c48a5.e5dc88"
            ]
        ]
    },
    {
        "id": "6ba1dbc1.d547b4",
        "type": "change",
        "z": "1a73c740.e06d79",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "filename",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 480,
        "y": 340,
        "wires": [
            [
                "9e92978.d8d0868"
            ]
        ]
    },
    {
        "id": "f21f0fb8.12361",
        "type": "comment",
        "z": "1a73c740.e06d79",
        "name": "Execute shell script",
        "info": "Execute the shell script in msg.payload.",
        "x": 130,
        "y": 40,
        "wires": []
    },
    {
        "id": "3c6751f317a368c2",
        "type": "rpi-gpio out",
        "z": "e7bc54457b5634db",
        "name": "Enable modulator output",
        "pin": "25",
        "set": true,
        "level": "0",
        "freq": "",
        "out": "out",
        "bcm": true,
        "x": 730,
        "y": 380,
        "wires": []
    },
    {
        "id": "dff785c9299e71e8",
        "type": "trigger",
        "z": "e7bc54457b5634db",
        "name": "",
        "op1": "1",
        "op2": "0",
        "op1type": "str",
        "op2type": "str",
        "duration": "500",
        "extend": false,
        "overrideDelay": false,
        "units": "ms",
        "reset": "",
        "bytopic": "all",
        "topic": "topic",
        "outputs": 1,
        "x": 730,
        "y": 340,
        "wires": [
            [
                "3c6751f317a368c2"
            ]
        ]
    },
    {
        "id": "743f5337.595bcc",
        "type": "inject",
        "z": "e7bc54457b5634db",
        "name": "All on",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": "",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 130,
        "y": 260,
        "wires": [
            [
                "92fd8149.b5867"
            ]
        ]
    },
    {
        "id": "92fd8149.b5867",
        "type": "template",
        "z": "e7bc54457b5634db",
        "name": "Shell Script",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "#! /bin/sh\n\nraspi-gpio set 27 dh\nraspi-gpio set 23 dl\nraspi-gpio set 22 dh\nraspi-gpio set 17 dh",
        "x": 290,
        "y": 260,
        "wires": [
            [
                "5b242947.2d4ac8"
            ]
        ]
    },
    {
        "id": "5b242947.2d4ac8",
        "type": "subflow:1a73c740.e06d79",
        "z": "e7bc54457b5634db",
        "x": 520,
        "y": 260,
        "wires": [
            [
                "24c6f0cd.3edaa",
                "dff785c9299e71e8"
            ],
            [
                "24c6f0cd.3edaa"
            ],
            [
                "24c6f0cd.3edaa"
            ]
        ]
    },
    {
        "id": "24c6f0cd.3edaa",
        "type": "debug",
        "z": "e7bc54457b5634db",
        "name": "Log the result",
        "active": true,
        "console": "false",
        "complete": "payload",
        "x": 730,
        "y": 260,
        "wires": []
    },
    {
        "id": "eee8acd1c89496ad",
        "type": "inject",
        "z": "e7bc54457b5634db",
        "name": "All off",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": "",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 130,
        "y": 300,
        "wires": [
            [
                "5e2bcc0248a55f0d"
            ]
        ]
    },
    {
        "id": "5e2bcc0248a55f0d",
        "type": "template",
        "z": "e7bc54457b5634db",
        "name": "Shell Script",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "#! /bin/sh\n\nraspi-gpio set 27 dl\nraspi-gpio set 23 dl\nraspi-gpio set 22 dh\nraspi-gpio set 17 dh",
        "x": 290,
        "y": 300,
        "wires": [
            [
                "5b242947.2d4ac8"
            ]
        ]
    },
    {
        "id": "bc77d2e0b2603b01",
        "type": "inject",
        "z": "e7bc54457b5634db",
        "name": "#1 on",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": "",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 130,
        "y": 400,
        "wires": [
            [
                "3d091aadbf38796d"
            ]
        ]
    },
    {
        "id": "3d091aadbf38796d",
        "type": "template",
        "z": "e7bc54457b5634db",
        "name": "Shell Script",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "#! /bin/sh\n\nraspi-gpio set 27 dh\nraspi-gpio set 23 dh\nraspi-gpio set 22 dh\nraspi-gpio set 17 dh",
        "x": 290,
        "y": 400,
        "wires": [
            [
                "5b242947.2d4ac8"
            ]
        ]
    },
    {
        "id": "ad626ceb7ae18c8e",
        "type": "inject",
        "z": "e7bc54457b5634db",
        "name": "#1 off",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": "",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 130,
        "y": 440,
        "wires": [
            [
                "e873eb2022ddbd9d"
            ]
        ]
    },
    {
        "id": "e873eb2022ddbd9d",
        "type": "template",
        "z": "e7bc54457b5634db",
        "name": "Shell Script",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "#! /bin/sh\n\nraspi-gpio set 27 dl\nraspi-gpio set 23 dh\nraspi-gpio set 22 dh\nraspi-gpio set 17 dh",
        "x": 290,
        "y": 440,
        "wires": [
            [
                "5b242947.2d4ac8"
            ]
        ]
    },
    {
        "id": "141fd9d02b7bc8b9",
        "type": "inject",
        "z": "e7bc54457b5634db",
        "name": "#2 on",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": "",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 130,
        "y": 540,
        "wires": [
            [
                "09a3bcf4de29f672"
            ]
        ]
    },
    {
        "id": "09a3bcf4de29f672",
        "type": "template",
        "z": "e7bc54457b5634db",
        "name": "Shell Script",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "#! /bin/sh\n\nraspi-gpio set 27 dh\nraspi-gpio set 23 dh\nraspi-gpio set 22 dh\nraspi-gpio set 17 dl",
        "x": 290,
        "y": 540,
        "wires": [
            [
                "5b242947.2d4ac8"
            ]
        ]
    },
    {
        "id": "1ecfd6479683fda5",
        "type": "inject",
        "z": "e7bc54457b5634db",
        "name": "#2 off",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": "",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 130,
        "y": 580,
        "wires": [
            [
                "2ad3b650166322a9"
            ]
        ]
    },
    {
        "id": "2ad3b650166322a9",
        "type": "template",
        "z": "e7bc54457b5634db",
        "name": "Shell Script",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "#! /bin/sh\n\nraspi-gpio set 27 dl\nraspi-gpio set 23 dh\nraspi-gpio set 22 dh\nraspi-gpio set 17 dl",
        "x": 290,
        "y": 580,
        "wires": [
            [
                "5b242947.2d4ac8"
            ]
        ]
    },
    {
        "id": "8ce0bbd7c247d537",
        "type": "inject",
        "z": "e7bc54457b5634db",
        "name": "#3 on",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": "",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 130,
        "y": 680,
        "wires": [
            [
                "2c22ed0d305ed154"
            ]
        ]
    },
    {
        "id": "2c22ed0d305ed154",
        "type": "template",
        "z": "e7bc54457b5634db",
        "name": "Shell Script",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "#! /bin/sh\n\nraspi-gpio set 27 dh\nraspi-gpio set 23 dh\nraspi-gpio set 22 dl\nraspi-gpio set 17 dh",
        "x": 290,
        "y": 680,
        "wires": [
            [
                "5b242947.2d4ac8"
            ]
        ]
    },
    {
        "id": "8c72f9e4c1110c9a",
        "type": "inject",
        "z": "e7bc54457b5634db",
        "name": "#3 off",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": "",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 130,
        "y": 720,
        "wires": [
            [
                "84f85a0077601162"
            ]
        ]
    },
    {
        "id": "84f85a0077601162",
        "type": "template",
        "z": "e7bc54457b5634db",
        "name": "Shell Script",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "#! /bin/sh\n\nraspi-gpio set 27 dl\nraspi-gpio set 23 dh\nraspi-gpio set 22 dl\nraspi-gpio set 17 dh",
        "x": 290,
        "y": 720,
        "wires": [
            [
                "5b242947.2d4ac8"
            ]
        ]
    },
    {
        "id": "bb33a1809c185051",
        "type": "inject",
        "z": "e7bc54457b5634db",
        "name": "#4 on",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": "",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 130,
        "y": 820,
        "wires": [
            [
                "b22e378094eae18f"
            ]
        ]
    },
    {
        "id": "b22e378094eae18f",
        "type": "template",
        "z": "e7bc54457b5634db",
        "name": "Shell Script",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "#! /bin/sh\n\nraspi-gpio set 27 dh\nraspi-gpio set 23 dh\nraspi-gpio set 22 dl\nraspi-gpio set 17 dl",
        "x": 290,
        "y": 820,
        "wires": [
            [
                "5b242947.2d4ac8"
            ]
        ]
    },
    {
        "id": "5a41aa51f7763f87",
        "type": "inject",
        "z": "e7bc54457b5634db",
        "name": "#4 off",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": "",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 130,
        "y": 860,
        "wires": [
            [
                "007e7ae68c43a940"
            ]
        ]
    },
    {
        "id": "007e7ae68c43a940",
        "type": "template",
        "z": "e7bc54457b5634db",
        "name": "Shell Script",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "#! /bin/sh\n\nraspi-gpio set 27 dl\nraspi-gpio set 23 dh\nraspi-gpio set 22 dl\nraspi-gpio set 17 dl",
        "x": 290,
        "y": 860,
        "wires": [
            [
                "5b242947.2d4ac8"
            ]
        ]
    },
    {
        "id": "fc18859c1f981288",
        "type": "comment",
        "z": "e7bc54457b5634db",
        "name": "Appliance name",
        "info": "",
        "x": 140,
        "y": 360,
        "wires": []
    },
    {
        "id": "3dc0b1a7180c0932",
        "type": "comment",
        "z": "e7bc54457b5634db",
        "name": "Appliance name",
        "info": "",
        "x": 140,
        "y": 500,
        "wires": []
    },
    {
        "id": "9f6a602cff0436db",
        "type": "comment",
        "z": "e7bc54457b5634db",
        "name": "Appliance name",
        "info": "",
        "x": 140,
        "y": 640,
        "wires": []
    },
    {
        "id": "2c81906637eede98",
        "type": "comment",
        "z": "e7bc54457b5634db",
        "name": "Appliance name",
        "info": "",
        "x": 140,
        "y": 780,
        "wires": []
    },
    {
        "id": "6979794cf1afb8c2",
        "type": "inject",
        "z": "e7bc54457b5634db",
        "name": "Setup GPIOs",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "1",
        "payloadType": "num",
        "x": 300,
        "y": 80,
        "wires": [
            [
                "7f87ef523d955b62"
            ]
        ]
    },
    {
        "id": "7f87ef523d955b62",
        "type": "template",
        "z": "e7bc54457b5634db",
        "name": "Shell Script",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "#! /bin/sh\n\nraspi-gpio set 24 dl",
        "x": 290,
        "y": 140,
        "wires": [
            [
                "5b242947.2d4ac8"
            ]
        ]
    },
    {
        "id": "4275755d2bb2b92d",
        "type": "rpi-gpio out",
        "z": "e7bc54457b5634db",
        "d": true,
        "name": "Mode select (low=OOK mode)",
        "pin": "24",
        "set": true,
        "level": "0",
        "freq": "",
        "out": "out",
        "bcm": true,
        "x": 710,
        "y": 560,
        "wires": []
    },
    {
        "id": "02a1c830607dc6bc",
        "type": "rpi-gpio in",
        "z": "e7bc54457b5634db",
        "name": "GPIO 27",
        "pin": "27",
        "intype": "tri",
        "debounce": "25",
        "read": true,
        "bcm": true,
        "x": 920,
        "y": 260,
        "wires": [
            [
                "68edf16c66b98012"
            ]
        ]
    },
    {
        "id": "ced24b84793e7187",
        "type": "rpi-gpio in",
        "z": "e7bc54457b5634db",
        "name": "GPIO23",
        "pin": "23",
        "intype": "tri",
        "debounce": "25",
        "read": true,
        "bcm": true,
        "x": 920,
        "y": 320,
        "wires": [
            [
                "5a66232ebdaab619"
            ]
        ]
    },
    {
        "id": "b3d901a3379f899c",
        "type": "rpi-gpio in",
        "z": "e7bc54457b5634db",
        "name": "GPIO22",
        "pin": "22",
        "intype": "tri",
        "debounce": "25",
        "read": true,
        "bcm": true,
        "x": 920,
        "y": 380,
        "wires": [
            [
                "743fba18cff09729"
            ]
        ]
    },
    {
        "id": "fed780bb4417682e",
        "type": "rpi-gpio in",
        "z": "e7bc54457b5634db",
        "name": "GPIO17",
        "pin": "17",
        "intype": "tri",
        "debounce": "25",
        "read": true,
        "bcm": true,
        "x": 920,
        "y": 440,
        "wires": [
            [
                "1fa7bcd106266a0d"
            ]
        ]
    },
    {
        "id": "68edf16c66b98012",
        "type": "debug",
        "z": "e7bc54457b5634db",
        "name": "debug 1",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 1060,
        "y": 260,
        "wires": []
    },
    {
        "id": "5a66232ebdaab619",
        "type": "debug",
        "z": "e7bc54457b5634db",
        "name": "debug 2",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 1060,
        "y": 320,
        "wires": []
    },
    {
        "id": "743fba18cff09729",
        "type": "debug",
        "z": "e7bc54457b5634db",
        "name": "debug 3",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 1060,
        "y": 380,
        "wires": []
    },
    {
        "id": "1fa7bcd106266a0d",
        "type": "debug",
        "z": "e7bc54457b5634db",
        "name": "debug 4",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 1060,
        "y": 440,
        "wires": []
    }
]

The gpio in node will send a message each time the input changes state.

I thought you were talking about gpio in nodes.

Afraid not. I need to monitor the state of GPIO pins setup for output.

I guess a different tack would be to approach the question differently. I'll make a separate post.

Separate post: Easy way to send 4-bit string to 4 separate GPIO out pins

The GPIO Out ode shows you the current state under the node, in fact I think the GPIO In does too.

image

Yes, I'm aware of that, but I don't know of an wasy way to send a 4-bit string to 4 separate GPIO nodes.

If only our GPIO-out node would accept topic, then you could send msg.topic=GPIO22 msg.payload=high