Node-RED + GPIO not working after upgrade to 9.10

Hello,
Running dietpi on RPI3b+ for years now, couple of months ago upgraded to bookworm, no issues.
after recent (5days ago) dietpi-update to 9.10 it seems it broken somehow GPIO communication to the Node-RED.

Initially it shown “stopped” with red under the gpio block in node-red, after some tryouts it now saying OK under the GPIO block, but it’s yellow - so it’s not comunnicating properly.

sadly (my bad) I can’t roll update back as I have backup after update :slight_smile:

Not really sure what to look for, as it was working just fine for years now.


what I’ve tried is to:

install pigpiod (no luck)
reinstall rpi.gpio
reinstall node-red
upgrade node-red
run node-red as root

There are no errors in the node-red log.

Has something changed in 9.10 dietpi?
Someone who points me to the right direction will be really appreciated :slight_smile:


update:
on other rpi which runs DHT sensor i2c, and PIR sensor on some pin, I can see same issue with communication with gpio:

sudo python3 scripts/climate.py 
/usr/local/lib/python3.11/dist-packages/gpiozero/devices.py:300: PinFactoryFallback: Falling back from lgpio: No module named 'lgpio'
  warnings.warn(
Traceback (most recent call last):
  File "/home/dietpi/scripts/climate.py", line 22, in <module>
    pir_sensor = DigitalInputDevice(24)
                 ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/gpiozero/devices.py", line 108, in __call__
    self = super().__call__(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/gpiozero/input_devices.py", line 168, in __init__
    self.pin.when_changed = self._pin_changed
    ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/gpiozero/pins/__init__.py", line 471, in <lambda>
    lambda self, value: self._set_when_changed(value),
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/gpiozero/pins/pi.py", line 639, in _set_when_changed
    self._enable_event_detect()
  File "/usr/local/lib/python3.11/dist-packages/gpiozero/pins/rpigpio.py", line 220, in _enable_event_detect
    GPIO.add_event_detect(
RuntimeError: Failed to add edge detection

So i guess it must be related to the 9.10 release of the Dietpi @MichaIng ?

update:

been able to solve second issue by removing rpi-gpio and installing rpi-lgpio

sudo apt remove python3-rpi.gpio

sudo apt install python3-rpi-lgpio

Node-RED update:
I was not able to fix it for rpi-gpio node (yet), but managed to install pi-gpiod node and install pigpio again, as it seems it’s not part of the dietpi.
This works.

anyway I’d like to find out why original node stopped working after upgrade :person_shrugging:

You upgraded to the modern RPi kernel/firmware stack, as offered with the DietPi update, right? uname -a

Support for the legacy GPIO APIs has been removed. Drop-in replacement for rpi.gpio is indeed rpi-lgpio, which makes use of the modern lgpio library. Indeed we need to replace the install option as well.

gpiod is the other modern GPIO tool, so that Node module seems sane.

pigpio however is another legacy RPi-only library. Is it still required for certain GPIO functionality of Node-RED?