# I want to turn off and turn on my display via node red

**URL:** <https://discourse.nodered.org/t/i-want-to-turn-off-and-turn-on-my-display-via-node-red/83587>\
**Category:** General\
**Created:** [10 December 2023 19:43 UTC](https://discourse.nodered.org/t/i-want-to-turn-off-and-turn-on-my-display-via-node-red/83587 "2023-12-10T19:43:31Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![druckstick.at](https://avatars.discourse-cdn.com/v4/letter/d/a587f6/32.png) [@druckstick.at](https://discourse.nodered.org/u/druckstick.at)\
**Post date:** [10 December 2023 19:43 UTC](https://discourse.nodered.org/t/i-want-to-turn-off-and-turn-on-my-display-via-node-red/83587/1 "2023-12-10T19:43:31Z")

</div>

Hello everybody!  
I want to turn off and turn on my display via node red.  
On the Raspberry this works great with xrandr --output DSI-1 --off and xrandr --output DSI-1 --auto  
However, this command cannot be executed from node red with exec.  
Then I get the message: Can't open display.  
I thought then I would just create a script (on.sh and off.sh) the scripts work directly on the Raspberry, as soon as I run the script again via node red, I get the same error message.  
Can anyone tell me how to get this to work or does anyone have another solution?  
PS: I use the 7" touch display directly via foil cable.  
Thank you!

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [10 December 2023 20:06 UTC](https://discourse.nodered.org/t/i-want-to-turn-off-and-turn-on-my-display-via-node-red/83587/2 "2023-12-10T20:06:56Z")

</div>

When you run an exec node, because Node-RED is almost certainly started from systemd at startup, it does not have an display reference to work with.

I think you should be able to prefix the command to run with a display variable like this:

```auto
DISPLAY=:0 ./my_app

```

To find the right setting for DISPLAY, I _think_ you should be able to do `echo $DISPLAY` from a standard command line.

---

<div class="post-metadata">

**Author:** ![druckstick.at](https://avatars.discourse-cdn.com/v4/letter/d/a587f6/32.png) [@druckstick.at](https://discourse.nodered.org/u/druckstick.at)\
**Post date:** [10 December 2023 20:40 UTC](https://discourse.nodered.org/t/i-want-to-turn-off-and-turn-on-my-display-via-node-red/83587/3 "2023-12-10T20:40:15Z")

</div>

> [@TotallyInformation](#):
>
> `DISPLAY=:0 ./`

Super thank you!  
I couldn't run the script quickly, but the command itself works!

For everyone who also wants to switch off their 7" display via node red, here are the nodes.  
For those who want to switch off HDMI, replace DSI-1 with HDMI-x x=HDMI channel  
You can find out with the command xrandr in the command line.

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/5/5/5506b9dda5a755324f45763a4098a4542761066e.png)

```auto
[
    {
        "id": "673c3af6dab828b5",
        "type": "tab",
        "label": "Flow 2",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "b65f82a8b8e8d84c",
        "type": "exec",
        "z": "673c3af6dab828b5",
        "command": "DISPLAY=:0 xrandr --output DSI-1 ",
        "addpay": "payload",
        "append": "",
        "useSpawn": "false",
        "timer": "10",
        "winHide": false,
        "oldrc": false,
        "name": "",
        "x": 580,
        "y": 300,
        "wires": [
            [
                "ab48be502509d061"
            ],
            [
                "91bed3b5ad656226"
            ],
            [
                "498c965228c7e7f5"
            ]
        ]
    },
    {
        "id": "3eee9a9065c11492",
        "type": "change",
        "z": "673c3af6dab828b5",
        "name": "translate",
        "rules": [
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "true",
                "fromt": "bool",
                "to": "--auto",
                "tot": "str"
            },
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "false",
                "fromt": "bool",
                "to": "--off",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 320,
        "y": 300,
        "wires": [
            [
                "b65f82a8b8e8d84c"
            ]
        ]
    },
    {
        "id": "4e39c5b56de4373d",
        "type": "inject",
        "z": "673c3af6dab828b5",
        "name": "",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "false",
        "payloadType": "bool",
        "x": 150,
        "y": 300,
        "wires": [
            [
                "3eee9a9065c11492"
            ]
        ]
    },
    {
        "id": "ab48be502509d061",
        "type": "debug",
        "z": "673c3af6dab828b5",
        "name": "debug 75",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 960,
        "y": 260,
        "wires": []
    },
    {
        "id": "498c965228c7e7f5",
        "type": "debug",
        "z": "673c3af6dab828b5",
        "name": "debug 76",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 960,
        "y": 380,
        "wires": []
    },
    {
        "id": "91bed3b5ad656226",
        "type": "debug",
        "z": "673c3af6dab828b5",
        "name": "debug 77",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 960,
        "y": 320,
        "wires": []
    },
    {
        "id": "d7ee6c518a5dc15a",
        "type": "inject",
        "z": "673c3af6dab828b5",
        "name": "",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "true",
        "payloadType": "bool",
        "x": 150,
        "y": 340,
        "wires": [
            [
                "3eee9a9065c11492"
            ]
        ]
    }
]

```

---

<div class="post-metadata">

**Author:** ![druckstick.at](https://avatars.discourse-cdn.com/v4/letter/d/a587f6/32.png) [@druckstick.at](https://discourse.nodered.org/u/druckstick.at)\
**Post date:** [10 December 2023 21:01 UTC](https://discourse.nodered.org/t/i-want-to-turn-off-and-turn-on-my-display-via-node-red/83587/4 "2023-12-10T21:01:35Z")

</div>

I would also like to show you my finished TAB.  
After two hours without use, the display and the reader (QR, PIN, NFC) switch off  
Since the touch function of the display remains active, I placed a button in a tab over the entire display to "wake it up" again.  
The timer also changes tabs so that you normally don't see the button.

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/4/2/42cb549a5cd0f5a0bbad578c63f2273552199ddc.png)

```auto
[
    {
        "id": "0d4cbb2d996aa349",
        "type": "tab",
        "label": "monitor an/aus",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "6d5a2a80ddd37dc1",
        "type": "rpi-gpio out",
        "z": "0d4cbb2d996aa349",
        "name": "",
        "pin": "21",
        "set": "",
        "level": "0",
        "freq": "",
        "out": "out",
        "bcm": true,
        "x": 920,
        "y": 260,
        "wires": []
    },
    {
        "id": "4557cab44fd70210",
        "type": "comment",
        "z": "0d4cbb2d996aa349",
        "name": "Sleepmode Keypad and Display",
        "info": "",
        "x": 250,
        "y": 80,
        "wires": []
    },
    {
        "id": "32f8fd89a5b7bd43",
        "type": "ui_ui_control",
        "z": "0d4cbb2d996aa349",
        "name": "",
        "events": "all",
        "x": 100,
        "y": 160,
        "wires": [
            [
                "4f02361bbe2edcd3"
            ]
        ]
    },
    {
        "id": "a1c6fcbfd33487ca",
        "type": "trigger",
        "z": "0d4cbb2d996aa349",
        "name": "",
        "op1": "0",
        "op2": "1",
        "op1type": "num",
        "op2type": "num",
        "duration": "2",
        "extend": true,
        "overrideDelay": false,
        "units": "hr",
        "reset": "",
        "bytopic": "all",
        "topic": "topic",
        "outputs": 1,
        "x": 690,
        "y": 160,
        "wires": [
            [
                "6d5a2a80ddd37dc1",
                "402cb8e798baf1c2",
                "9f42e8a44f0eef48",
                "976f7349fe0d8e8a"
            ]
        ]
    },
    {
        "id": "0c71f918d21654b6",
        "type": "change",
        "z": "0d4cbb2d996aa349",
        "name": "Tab sleepmode",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "{\"tab\":\"sleepmode\"}",
                "tot": "json"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1120,
        "y": 160,
        "wires": [
            [
                "32f8fd89a5b7bd43"
            ]
        ]
    },
    {
        "id": "402cb8e798baf1c2",
        "type": "switch",
        "z": "0d4cbb2d996aa349",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "1",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "0",
                "vt": "num"
            },
            {
                "t": "else"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 3,
        "x": 910,
        "y": 160,
        "wires": [
            [
                "0c71f918d21654b6"
            ],
            [],
            []
        ]
    },
    {
        "id": "f010b987a3f0de6b",
        "type": "ui_button",
        "z": "0d4cbb2d996aa349",
        "name": "",
        "group": "d84cd9992f69b4e8",
        "order": 1,
        "width": 14,
        "height": 8,
        "passthru": false,
        "label": " <font size = 50> wake up ",
        "tooltip": "",
        "color": "",
        "bgcolor": "green",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 150,
        "y": 440,
        "wires": [
            [
                "18b30027012195ed"
            ]
        ]
    },
    {
        "id": "18b30027012195ed",
        "type": "change",
        "z": "0d4cbb2d996aa349",
        "name": "Tab startscreen",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "{\"tab\":\"startscreen\"}",
                "tot": "json"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 380,
        "y": 440,
        "wires": [
            [
                "9581c5f328816ca8"
            ]
        ]
    },
    {
        "id": "9581c5f328816ca8",
        "type": "ui_ui_control",
        "z": "0d4cbb2d996aa349",
        "name": "",
        "events": "all",
        "x": 600,
        "y": 440,
        "wires": [
            []
        ]
    },
    {
        "id": "a90218148929fbe7",
        "type": "switch",
        "z": "0d4cbb2d996aa349",
        "name": "",
        "property": "sleepmode",
        "propertyType": "flow",
        "rules": [
            {
                "t": "true"
            },
            {
                "t": "else"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 490,
        "y": 160,
        "wires": [
            [],
            [
                "a1c6fcbfd33487ca"
            ]
        ]
    },
    {
        "id": "ce09e4bbe4afae18",
        "type": "change",
        "z": "0d4cbb2d996aa349",
        "name": "flow true",
        "rules": [
            {
                "t": "set",
                "p": "sleepmode",
                "pt": "flow",
                "to": "true",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1100,
        "y": 60,
        "wires": [
            []
        ]
    },
    {
        "id": "49d00688f7bad8f3",
        "type": "change",
        "z": "0d4cbb2d996aa349",
        "name": "flow false",
        "rules": [
            {
                "t": "set",
                "p": "sleepmode",
                "pt": "flow",
                "to": "false",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1100,
        "y": 100,
        "wires": [
            []
        ]
    },
    {
        "id": "4f02361bbe2edcd3",
        "type": "delay",
        "z": "0d4cbb2d996aa349",
        "name": "",
        "pauseType": "delay",
        "timeout": "500",
        "timeoutUnits": "milliseconds",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "allowrate": false,
        "outputs": 1,
        "x": 300,
        "y": 160,
        "wires": [
            [
                "a90218148929fbe7"
            ]
        ]
    },
    {
        "id": "9f42e8a44f0eef48",
        "type": "trigger",
        "z": "0d4cbb2d996aa349",
        "name": "",
        "op1": "true",
        "op2": "true",
        "op1type": "bool",
        "op2type": "bool",
        "duration": "1",
        "extend": true,
        "overrideDelay": false,
        "units": "s",
        "reset": "",
        "bytopic": "all",
        "topic": "topic",
        "outputs": 2,
        "x": 860,
        "y": 60,
        "wires": [
            [
                "ce09e4bbe4afae18"
            ],
            [
                "49d00688f7bad8f3"
            ]
        ]
    },
    {
        "id": "f4450d1f35d1e6f2",
        "type": "exec",
        "z": "0d4cbb2d996aa349",
        "command": "DISPLAY=:0 xrandr --output DSI-1 ",
        "addpay": "payload",
        "append": "",
        "useSpawn": "false",
        "timer": "10",
        "winHide": false,
        "oldrc": false,
        "name": "",
        "x": 1160,
        "y": 220,
        "wires": [
            [],
            [],
            []
        ]
    },
    {
        "id": "976f7349fe0d8e8a",
        "type": "change",
        "z": "0d4cbb2d996aa349",
        "name": "translate",
        "rules": [
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "0",
                "fromt": "num",
                "to": "--auto",
                "tot": "str"
            },
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "1",
                "fromt": "num",
                "to": "--off",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 920,
        "y": 220,
        "wires": [
            [
                "f4450d1f35d1e6f2"
            ]
        ]
    },
    {
        "id": "b78863376e9a1269",
        "type": "inject",
        "z": "0d4cbb2d996aa349",
        "name": "ON",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "0",
        "payloadType": "num",
        "x": 630,
        "y": 320,
        "wires": [
            [
                "976f7349fe0d8e8a",
                "6d5a2a80ddd37dc1"
            ]
        ]
    },
    {
        "id": "2d5a80ab21e3269a",
        "type": "inject",
        "z": "0d4cbb2d996aa349",
        "name": "OFF",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "1",
        "payloadType": "num",
        "x": 630,
        "y": 360,
        "wires": [
            [
                "976f7349fe0d8e8a",
                "6d5a2a80ddd37dc1"
            ]
        ]
    },
    {
        "id": "d84cd9992f69b4e8",
        "type": "ui_group",
        "name": "sleepmode",
        "tab": "d92570b02ac79961",
        "order": 1,
        "disp": false,
        "width": 14,
        "collapse": false,
        "className": ""
    },
    {
        "id": "d92570b02ac79961",
        "type": "ui_tab",
        "name": "sleepmode",
        "icon": "dashboard",
        "order": 14,
        "disabled": false,
        "hidden": false
    }
]

```

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [24 December 2023 21:02 UTC](https://discourse.nodered.org/t/i-want-to-turn-off-and-turn-on-my-display-via-node-red/83587/5 "2023-12-24T21:02:23Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
