Rpi gpio library not work with dietpi trixie

What do you mean by "as a deamon"? lgpio is a library, so there should be no daemon needed. I read more than once that python3-rpi-lgpio does not always work, but I don't know why. Fact is, python3-rpi.gpio cannot work anymore since Trixie, and also on Bookworm it is not available anymore, and was deprecated a long time ago.

Apart of node-red-node-pi-gpio, there is node-red-node-pi-gpiod. But other than the name seems to indicate, it does not use the generic libgpiod, but another RPi-only library pigpiod. There was a related APT package available on Bookworm, but not anymore since Trixie. Also upstream, this library has not seen any commit since 5 years: GitHub - joan2937/pigpio: pigpio is a C library for the Raspberry which allows control of the General Purpose Input Outputs (GPIO). ¡ GitHub
So I would rate it deprecated as well, and it would need to be manually compiled (and tested).

Sadly, there is no other Node-RED GPIO plugin that does not look dead either. Is it so difficult to just use generic libgpiod or (native) lgpio on RPi? There is node-red-contrib-libgpiod, but it has not seen any commit since 4 years.

Maybe someone can share journalctl -u node-red, resp logs/output of Node-RED when trying to use node-red-node-pi-gpio with python3-rpi-lgpio, in the hope to see some error message to work with.

root@DietPi:~# journalctl -u node-red
Mar 20 17:09:51 DietPi systemd[1]: Started node-red.service - Node-RED (DietPi).
Mar 20 17:09:54 DietPi node-red[1150]: 20 Mar 17:09:54 - [info]
Mar 20 17:09:54 DietPi node-red[1150]: Welcome to Node-RED
Mar 20 17:09:54 DietPi node-red[1150]: ===================
Mar 20 17:09:54 DietPi node-red[1150]: 20 Mar 17:09:54 - [info] Node-RED version: v4.1.7
Mar 20 17:09:54 DietPi node-red[1150]: 20 Mar 17:09:54 - [info] Node.js  version: v25.8.1
Mar 20 17:09:54 DietPi node-red[1150]: 20 Mar 17:09:54 - [info] Linux 6.12.75+rpt-rpi-v8 arm64 LE
Mar 20 17:09:55 DietPi node-red[1150]: 20 Mar 17:09:55 - [info] Loading palette nodes
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] Settings file  : /mnt/dietpi_userdata/node-red/settings.js
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] Context store  : 'default' [module=memory]
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] User directory : /mnt/dietpi_userdata/node-red
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [warn] Projects disabled : editorTheme.projects.enabled=false
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] Flows file     : /mnt/dietpi_userdata/node-red/flows.json
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] Creating new flow file
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [warn]
Mar 20 17:09:58 DietPi node-red[1150]: ---------------------------------------------------------------------
Mar 20 17:09:58 DietPi node-red[1150]: Your flow credentials file is encrypted using a system-generated key.
Mar 20 17:09:58 DietPi node-red[1150]: If the system-generated key is lost for any reason, your credentials
Mar 20 17:09:58 DietPi node-red[1150]: file will not be recoverable, you will have to delete it and re-enter
Mar 20 17:09:58 DietPi node-red[1150]: your credentials.
Mar 20 17:09:58 DietPi node-red[1150]: You should set your own key using the 'credentialSecret' option in
Mar 20 17:09:58 DietPi node-red[1150]: your settings file. Node-RED will then re-encrypt your credentials
Mar 20 17:09:58 DietPi node-red[1150]: file using your chosen key the next time you deploy a change.
Mar 20 17:09:58 DietPi node-red[1150]: ---------------------------------------------------------------------
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] Server now running at http://127.0.0.1:1880/
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [warn] Encrypted credentials not found
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] Starting flows
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] Started flows
Mar 20 17:13:01 DietPi node-red[1150]: 20 Mar 17:13:01 - [info] Installing module: node-red-node-pi-gpio, version: 2.0.7
Mar 20 17:13:08 DietPi node-red[1150]: 20 Mar 17:13:08 - [info] Installed module: node-red-node-pi-gpio
Mar 20 17:13:09 DietPi node-red[1150]: 2026-03-20 17:13:09 xCreatePipe: Can't set permissions (436) for //.lgd-nfy0, No such file or directory
Mar 20 17:13:09 DietPi node-red[1150]: Traceback (most recent call last):
Mar 20 17:13:09 DietPi node-red[1150]:   File "/mnt/dietpi_userdata/node-red/node_modules/node-red-node-pi-gpio/testgpio.py", line 3, in <module>
Mar 20 17:13:09 DietPi node-red[1150]:     import RPi.GPIO as GPIO
Mar 20 17:13:09 DietPi node-red[1150]:   File "/usr/lib/python3/dist-packages/RPi/GPIO/__init__.py", line 14, in <module>
Mar 20 17:13:09 DietPi node-red[1150]:     import lgpio
Mar 20 17:13:09 DietPi node-red[1150]:   File "/usr/lib/python3/dist-packages/lgpio.py", line 562, in <module>
Mar 20 17:13:09 DietPi node-red[1150]:     _notify_thread = _callback_thread()
Mar 20 17:13:09 DietPi node-red[1150]:   File "/usr/lib/python3/dist-packages/lgpio.py", line 504, in __init__
Mar 20 17:13:09 DietPi node-red[1150]:     self._file = open('.lgd-nfy{}'.format(self._notify), 'rb')
Mar 20 17:13:09 DietPi node-red[1150]:                  ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Mar 20 17:13:09 DietPi node-red[1150]: FileNotFoundError: [Errno 2] No such file or directory: '.lgd-nfy-3'
Mar 20 17:13:09 DietPi node-red[1150]: 20 Mar 17:13:09 - [warn] rpi-gpio : Raspberry Pi specific node set inactive
Mar 20 17:13:09 DietPi node-red[1150]: 20 Mar 17:13:09 - [info] Added node types:
Mar 20 17:13:09 DietPi node-red[1150]: 20 Mar 17:13:09 - [info]  - node-red-node-pi-gpio:rpi-gpio in
Mar 20 17:13:09 DietPi node-red[1150]: 20 Mar 17:13:09 - [info]  - node-red-node-pi-gpio:rpi-gpio out
Mar 20 17:13:09 DietPi node-red[1150]: 20 Mar 17:13:09 - [info]  - node-red-node-pi-gpio:rpi-mouse
Mar 20 17:13:09 DietPi node-red[1150]: 20 Mar 17:13:09 - [info]  - node-red-node-pi-gpio:rpi-keyboard

root@DietPi:~# journalctl -u node-red
Mar 20 17:09:51 DietPi systemd[1]: Started node-red.service - Node-RED (DietPi).
Mar 20 17:09:54 DietPi node-red[1150]: 20 Mar 17:09:54 - [info]
Mar 20 17:09:54 DietPi node-red[1150]: Welcome to Node-RED
Mar 20 17:09:54 DietPi node-red[1150]: ===================
Mar 20 17:09:54 DietPi node-red[1150]: 20 Mar 17:09:54 - [info] Node-RED version: v4.1.7
Mar 20 17:09:54 DietPi node-red[1150]: 20 Mar 17:09:54 - [info] Node.js  version: v25.8.1
Mar 20 17:09:54 DietPi node-red[1150]: 20 Mar 17:09:54 - [info] Linux 6.12.75+rpt-rpi-v8 arm64 LE
Mar 20 17:09:55 DietPi node-red[1150]: 20 Mar 17:09:55 - [info] Loading palette nodes
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] Settings file  : /mnt/dietpi_userdata/node-red/settings.js
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] Context store  : 'default' [module=memory]
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] User directory : /mnt/dietpi_userdata/node-red
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [warn] Projects disabled : editorTheme.projects.enabled=false
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] Flows file     : /mnt/dietpi_userdata/node-red/flows.json
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] Creating new flow file
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [warn]
Mar 20 17:09:58 DietPi node-red[1150]: ---------------------------------------------------------------------
Mar 20 17:09:58 DietPi node-red[1150]: Your flow credentials file is encrypted using a system-generated key.
Mar 20 17:09:58 DietPi node-red[1150]: If the system-generated key is lost for any reason, your credentials
Mar 20 17:09:58 DietPi node-red[1150]: file will not be recoverable, you will have to delete it and re-enter
Mar 20 17:09:58 DietPi node-red[1150]: your credentials.
Mar 20 17:09:58 DietPi node-red[1150]: You should set your own key using the 'credentialSecret' option in
Mar 20 17:09:58 DietPi node-red[1150]: your settings file. Node-RED will then re-encrypt your credentials
Mar 20 17:09:58 DietPi node-red[1150]: file using your chosen key the next time you deploy a change.
Mar 20 17:09:58 DietPi node-red[1150]: ---------------------------------------------------------------------
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] Server now running at http://127.0.0.1:1880/
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [warn] Encrypted credentials not found
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] Starting flows
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] Started flows
Mar 20 17:13:01 DietPi node-red[1150]: 20 Mar 17:13:01 - [info] Installing module: node-red-node-pi-gpio, version: 2.0.7
Mar 20 17:13:08 DietPi node-red[1150]: 20 Mar 17:13:08 - [info] Installed module: node-red-node-pi-gpio
Mar 20 17:13:09 DietPi node-red[1150]: 2026-03-20 17:13:09 xCreatePipe: Can't set permissions (436) for //.lgd-nfy0, No such file or directory
Mar 20 17:13:09 DietPi node-red[1150]: Traceback (most recent call last):
Mar 20 17:13:09 DietPi node-red[1150]:   File "/mnt/dietpi_userdata/node-red/node_modules/node-red-node-pi-gpio/testgpio.py", line 3, in <module>
Mar 20 17:13:09 DietPi node-red[1150]:     import RPi.GPIO as GPIO
Mar 20 17:13:09 DietPi node-red[1150]:   File "/usr/lib/python3/dist-packages/RPi/GPIO/__init__.py", line 14, in <module>
Mar 20 17:13:09 DietPi node-red[1150]:     import lgpio
Mar 20 17:13:09 DietPi node-red[1150]:   File "/usr/lib/python3/dist-packages/lgpio.py", line 562, in <module>
Mar 20 17:13:09 DietPi node-red[1150]:     _notify_thread = _callback_thread()
Mar 20 17:13:09 DietPi node-red[1150]:   File "/usr/lib/python3/dist-packages/lgpio.py", line 504, in __init__
Mar 20 17:13:09 DietPi node-red[1150]:     self._file = open('.lgd-nfy{}'.format(self._notify), 'rb')
Mar 20 17:13:09 DietPi node-red[1150]:                  ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Mar 20 17:13:09 DietPi node-red[1150]: FileNotFoundError: [Errno 2] No such file or directory: '.lgd-nfy-3'
Mar 20 17:13:09 DietPi node-red[1150]: 20 Mar 17:13:09 - [warn] rpi-gpio : Raspberry Pi specific node set inactive
Mar 20 17:13:09 DietPi node-red[1150]: 20 Mar 17:13:09 - [info] Added node types:
Mar 20 17:13:09 DietPi node-red[1150]: 20 Mar 17:13:09 - [info]  - node-red-node-pi-gpio:rpi-gpio in
Mar 20 17:13:09 DietPi node-red[1150]: 20 Mar 17:13:09 - [info]  - node-red-node-pi-gpio:rpi-gpio out
Mar 20 17:13:09 DietPi node-red[1150]: 20 Mar 17:13:09 - [info]  - node-red-node-pi-gpio:rpi-mouse
Mar 20 17:13:09 DietPi node-red[1150]: 20 Mar 17:13:09 - [info]  - node-red-node-pi-gpio:rpi-keyboard
root@DietPi:~# journalctl -u node-red
Mar 20 17:09:51 DietPi systemd[1]: Started node-red.service - Node-RED (DietPi).
Mar 20 17:09:54 DietPi node-red[1150]: 20 Mar 17:09:54 - [info]
Mar 20 17:09:54 DietPi node-red[1150]: Welcome to Node-RED
Mar 20 17:09:54 DietPi node-red[1150]: ===================
Mar 20 17:09:54 DietPi node-red[1150]: 20 Mar 17:09:54 - [info] Node-RED version: v4.1.7
Mar 20 17:09:54 DietPi node-red[1150]: 20 Mar 17:09:54 - [info] Node.js  version: v25.8.1
Mar 20 17:09:54 DietPi node-red[1150]: 20 Mar 17:09:54 - [info] Linux 6.12.75+rpt-rpi-v8 arm64 LE
Mar 20 17:09:55 DietPi node-red[1150]: 20 Mar 17:09:55 - [info] Loading palette nodes
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] Settings file  : /mnt/dietpi_userdata/node-red/settings.js
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] Context store  : 'default' [module=memory]
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] User directory : /mnt/dietpi_userdata/node-red
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [warn] Projects disabled : editorTheme.projects.enabled=false
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] Flows file     : /mnt/dietpi_userdata/node-red/flows.json
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] Creating new flow file
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [warn]
Mar 20 17:09:58 DietPi node-red[1150]: ---------------------------------------------------------------------
Mar 20 17:09:58 DietPi node-red[1150]: Your flow credentials file is encrypted using a system-generated key.
Mar 20 17:09:58 DietPi node-red[1150]: If the system-generated key is lost for any reason, your credentials
Mar 20 17:09:58 DietPi node-red[1150]: file will not be recoverable, you will have to delete it and re-enter
Mar 20 17:09:58 DietPi node-red[1150]: your credentials.
Mar 20 17:09:58 DietPi node-red[1150]: You should set your own key using the 'credentialSecret' option in
Mar 20 17:09:58 DietPi node-red[1150]: your settings file. Node-RED will then re-encrypt your credentials
Mar 20 17:09:58 DietPi node-red[1150]: file using your chosen key the next time you deploy a change.
Mar 20 17:09:58 DietPi node-red[1150]: ---------------------------------------------------------------------
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] Server now running at http://127.0.0.1:1880/
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [warn] Encrypted credentials not found
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] Starting flows
Mar 20 17:09:58 DietPi node-red[1150]: 20 Mar 17:09:58 - [info] Started flows
Mar 20 17:13:01 DietPi node-red[1150]: 20 Mar 17:13:01 - [info] Installing module: node-red-node-pi-gpio, version: 2.0.7
Mar 20 17:13:08 DietPi node-red[1150]: 20 Mar 17:13:08 - [info] Installed module: node-red-node-pi-gpio
Mar 20 17:13:09 DietPi node-red[1150]: 2026-03-20 17:13:09 xCreatePipe: Can't set permissions (436) for //.lgd-nfy0, No such file or directory
Mar 20 17:13:09 DietPi node-red[1150]: Traceback (most recent call last):
Mar 20 17:13:09 DietPi node-red[1150]:   File "/mnt/dietpi_userdata/node-red/node_modules/node-red-node-pi-gpio/testgpio.py", line 3, in <module>
Mar 20 17:13:09 DietPi node-red[1150]:     import RPi.GPIO as GPIO
Mar 20 17:13:09 DietPi node-red[1150]:   File "/usr/lib/python3/dist-packages/RPi/GPIO/__init__.py", line 14, in <module>
Mar 20 17:13:09 DietPi node-red[1150]:     import lgpio
Mar 20 17:13:09 DietPi node-red[1150]:   File "/usr/lib/python3/dist-packages/lgpio.py", line 562, in <module>
Mar 20 17:13:09 DietPi node-red[1150]:     _notify_thread = _callback_thread()
Mar 20 17:13:09 DietPi node-red[1150]:   File "/usr/lib/python3/dist-packages/lgpio.py", line 504, in __init__
Mar 20 17:13:09 DietPi node-red[1150]:     self._file = open('.lgd-nfy{}'.format(self._notify), 'rb')
Mar 20 17:13:09 DietPi node-red[1150]:                  ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Mar 20 17:13:09 DietPi node-red[1150]: FileNotFoundError: [Errno 2] No such file or directory: '.lgd-nfy-3'
Mar 20 17:13:09 DietPi node-red[1150]: 20 Mar 17:13:09 - [warn] rpi-gpio : Raspberry Pi specific node set inactive
Mar 20 17:13:09 DietPi node-red[1150]: 20 Mar 17:13:09 - [info] Added node types:
Mar 20 17:13:09 DietPi node-red[1150]: 20 Mar 17:13:09 - [info]  - node-red-node-pi-gpio:rpi-gpio in
Mar 20 17:13:09 DietPi node-red[1150]: 20 Mar 17:13:09 - [info]  - node-red-node-pi-gpio:rpi-gpio out
Mar 20 17:13:09 DietPi node-red[1150]: 20 Mar 17:13:09 - [info]  - node-red-node-pi-gpio:rpi-mouse
Mar 20 17:13:09 DietPi node-red[1150]: 20 Mar 17:13:09 - [info]  - node-red-node-pi-gpio:rpi-keyboard
Mar 20 17:16:27 DietPi node-red[1150]: 20 Mar 17:16:27 - [info] Installing module: node-red-piervin-sensor-wired, version: 0.1.0
Mar 20 17:16:33 DietPi node-red[1150]: 20 Mar 17:16:33 - [info] Installed module: node-red-piervin-sensor-wired
Mar 20 17:16:33 DietPi node-red[1150]: 20 Mar 17:16:33 - [info] Added node types:
Mar 20 17:16:33 DietPi node-red[1150]: 20 Mar 17:16:33 - [info]  - node-red-piervin-sensor-wired:sensor-ds18b20
Mar 20 17:16:53 DietPi node-red[1150]: 20 Mar 17:16:53 - [info] Stopping flows
Mar 20 17:16:53 DietPi node-red[1150]: 20 Mar 17:16:53 - [info] Stopped flows
Mar 20 17:16:53 DietPi node-red[1150]: 20 Mar 17:16:53 - [info] Updated flows
Mar 20 17:16:53 DietPi node-red[1150]: 20 Mar 17:16:53 - [info] Starting flows
Mar 20 17:16:53 DietPi node-red[1150]: 20 Mar 17:16:53 - [info] Started flows
Mar 20 17:17:11 DietPi node-red[1150]: 20 Mar 17:17:11 - [info] Stopping flows
Mar 20 17:17:11 DietPi node-red[1150]: 20 Mar 17:17:11 - [info] Stopped flows
Mar 20 17:17:11 DietPi node-red[1150]: 20 Mar 17:17:11 - [info] Updated flows
Mar 20 17:17:11 DietPi node-red[1150]: 20 Mar 17:17:11 - [info] Starting flows
Mar 20 17:17:11 DietPi node-red[1150]: 20 Mar 17:17:11 - [info] Started flows
root@DietPi:~#

Please try this:

sudo sed -i '/\[Service\]/a\WorkingDirectory=/mnt/dietpi_userdata/node-red' /etc/systemd/system/node-red.service
sudo systemctl daemon-reload
sudo systemctl restart node-red

The lgpio Python library seems to try creating a notification pipe file in the current/working directory. The above changes it to /mnt/dietpi_userdata/node-red where it can write to. Something like that would actually best fit into some /run/node-red. But since it is for the RPi GPIO plugin only, and in case it cleans up those files properly, its home dir should be fine.

Please check by times that there are no /mnt/dietpi_userdata/node-red/.lgd-nfy-* files accumulating. If it does not clean them up properly, but adds new ones with incremental suffix on failures, we'd better use RuntimeDirectory=node-red and WorkingDirectory=/run/node-red, so that a service restart cleans this up.


Apparently it has a result.
An ordinary user like me can hardly do these things. Now it needs to be made so that it can be integrated into dietpi-software and things will be cool. At the moment the experiment is running on a bare board but on Monday I will try it as it should and we will see the result.

I don't understand this.

On the way.

Run this by times:

ls -l /mnt/dietpi_userdata/node-red/.lgd-nfy-*

It will likely show one file, like /mnt/dietpi_userdata/node-red/.lgd-nfy-0. As long as it shows one or no file, all is good. If there appear multiple ones, like /mnt/dietpi_userdata/node-red/.lgd-nfy-1 and /mnt/dietpi_userdata/node-red/.lgd-nfy-2 as well, the library does not cleanup properly, and we'd then better switch to a temporary directory.

1 Like

Ah wait, it does not always have a dash at the end:

ls -l /mnt/dietpi_userdata/node-red/.lgd-nfy*

image

We have a joke like this.
-Do you know English?
-Like dogs.
-?
-I understand everything but I can't speak.
:slight_smile:

:smile:

Okay so far so good. One notification pipe file from the lgpio Python library itself, created in the working dir at import time. It is documented here, used to be informed about GPIO changes, AFAIU: lg library

DietPi users will get this fix with the upcoming release tomorrow or Sunday, or by running

G_SUDO G_CONFIG_INJECT 'WorkingDirectory=' 'WorkingDirectory=/mnt/dietpi_userdata/node-red' /etc/systemd/system/node-red.service '\[Service\]'

A prior fix is fine, the update will run the above command again, but it is a noop then, saying the setting was applied already.

For non-DietPi users who have issues with node-red-node-pi-gpio and python3-rpi-lgpio: Assure that the executing user has write access to the current directory, or navigate to a directory where it has. /tmp would work as well, but since everyone can write there, it is not the best choice in terms of security, without protection against malicious symlinks. So better use a home or runtime directory where only the executing user has write access to.

Great that we found the underlying reason :slightly_smiling_face:.

2 Likes

Tell me honestly. Am I the only Dietpi and Node Red user who noticed this problem almost a year and more ago? This makes me think that I'm not just a user. :)). What are the developers doing at this point? I raised this question a year ago! We have a saying: Better late than never. Greetings.

There were 1 or 2 more reports I remember, but we never tracked it down.

Which developers?

(post deleted by author)

(post deleted by author)

I don't understand the question?