# Reading GPIOs issue

**URL:** <https://discourse.nodered.org/t/reading-gpios-issue/51759>\
**Category:** General\
**Tags:** node-red-dashboard\
**Created:** [1 October 2021 16:36 UTC](https://discourse.nodered.org/t/reading-gpios-issue/51759 "2021-10-01T16:36:36Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![ebolisa](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ebolisa/32/89203_2.png) [@ebolisa](https://discourse.nodered.org/u/ebolisa)\
**Post date:** [1 October 2021 16:36 UTC](https://discourse.nodered.org/t/reading-gpios-issue/51759/1 "2021-10-01T16:36:36Z")

</div>

Hello again,

Still crawling the learning curve so pls, bear with me.

I'm reading 5 GPIOs lines and displaying them as LEDs.  
However, only one of them responds to the changes.  
I run a python loop to physically check the lines and they're ok.  
The outputs are connected to external resistors and pulled high so, a short causes to read 0 otherwise, 1.  
The question is, how do I troubleshoot this situation in node-red?  
And, why is the widget telling me that it "stopped"? Stopped from what if, in theory, should be a continous read.  
TIA

 ![Cap1](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/2/5/2575086680f8a4bb5dbe34687a428c3d6b3add04.png)

---

<div class="post-metadata">

**Author:** ![Gunner](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gunner/32/43582_2.png) [@Gunner](https://discourse.nodered.org/u/Gunner)\
**Post date:** [1 October 2021 16:44 UTC](https://discourse.nodered.org/t/reading-gpios-issue/51759/2 "2021-10-01T16:44:50Z")

</div>

> [@ebolisa](#):
>
> The outputs are connected to external resistors and pulled high

Make sure you set the RPi's internal ones (as set in the node) HIGH as well, or at least as NONE (floating)

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/9/b/9b126015407761cf86718ed54753c65c6b26fc55.png)

---

<div class="post-metadata">

**Author:** ![Gunner](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gunner/32/43582_2.png) [@Gunner](https://discourse.nodered.org/u/Gunner)\
**Post date:** [1 October 2021 16:49 UTC](https://discourse.nodered.org/t/reading-gpios-issue/51759/3 "2021-10-01T16:49:27Z")

</div>

BTW, in case you do have... I don't think you should have a `GPIO-IN` and `GPIO-OUT` for same pin

---

<div class="post-metadata">

**Author:** ![ebolisa](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ebolisa/32/89203_2.png) [@ebolisa](https://discourse.nodered.org/u/ebolisa)\
**Post date:** [1 October 2021 16:59 UTC](https://discourse.nodered.org/t/reading-gpios-issue/51759/4 "2021-10-01T16:59:26Z")

</div>

Yes, it's set to NONE. Thx.

 ![Cap1](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/e/b/eb268807def1ec7955e79ea684d205b1b01cb6cb.png)

---

<div class="post-metadata">

**Author:** ![ebolisa](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ebolisa/32/89203_2.png) [@ebolisa](https://discourse.nodered.org/u/ebolisa)\
**Post date:** [1 October 2021 17:00 UTC](https://discourse.nodered.org/t/reading-gpios-issue/51759/5 "2021-10-01T17:00:49Z")

</div>

No, they're not. One set is dedicated to the relays and the other, to the LEDs. Thx

---

<div class="post-metadata">

**Author:** ![Gunner](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gunner/32/43582_2.png) [@Gunner](https://discourse.nodered.org/u/Gunner)\
**Post date:** [1 October 2021 17:01 UTC](https://discourse.nodered.org/t/reading-gpios-issue/51759/6 "2021-10-01T17:01:29Z")

</div>

> [@ebolisa](#):
>
> And, why is the widget telling me that it "stopped"? Stopped from what if, in theory, should be a continous read.

As a guess.... it hasn't yet connected (or properly read) the status of that GPIO

---

<div class="post-metadata">

**Author:** ![ebolisa](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ebolisa/32/89203_2.png) [@ebolisa](https://discourse.nodered.org/u/ebolisa)\
**Post date:** [1 October 2021 17:30 UTC](https://discourse.nodered.org/t/reading-gpios-issue/51759/7 "2021-10-01T17:30:56Z")

</div>

It may be a board related issue. I'm running node-red on a zero-w. Will change to Rpi4 and see what happens. Thx.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [1 October 2021 20:08 UTC](https://discourse.nodered.org/t/reading-gpios-issue/51759/8 "2021-10-01T20:08:05Z")

</div>

> [@ebolisa](#):
>
> I run a python loop to physically check the lines and they're ok.

Don't run that at the same time as node red, I suspect that two applications cannot use the pin at the same time.

Stop node red and Start it again in a terminal and post the startup log please. Copy/paste, not screenshot. Use the`</>` button at the top of the forum entry window when pasting.

---

<div class="post-metadata">

**Author:** ![ebolisa](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ebolisa/32/89203_2.png) [@ebolisa](https://discourse.nodered.org/u/ebolisa)\
**Post date:** [1 October 2021 21:04 UTC](https://discourse.nodered.org/t/reading-gpios-issue/51759/9 "2021-10-01T21:04:04Z")

</div>

Here it is. Thx.

```auto
OLD nodejs 0 :
NEW nodejs :

***************************************

Started : Fri 1 Oct 00:04:31 CEST 2021
Running for user pi at /home/pi
Failed to stop nodered.service: Unit nodered.service not loaded.
Found global nodes: :

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Reading package lists...
Building dependency tree...
Reading state information...
Package 'nodered' is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Reading package lists...
Building dependency tree...
Reading state information...
Package 'nodejs-legacy' is not installed, so not removed
Package 'nodejs' is not installed, so not removed
Package 'npm' is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Versions: node:v14.17.6 npm:6.14.15
npm WARN using --force I sure hope you know what you are doing.
Now install Node-RED
/usr/bin/node-red -> /usr/lib/node_modules/node-red/red.js
/usr/bin/node-red-pi -> /usr/lib/node_modules/node-red/bin/node-red-pi

> bcrypt@5.0.1 install /usr/lib/node_modules/node-red/node_modules/bcrypt
> node-pre-gyp install --fallback-to-build

node-pre-gyp ERR! install response status 404 Not Found on https://github.com/kelektiv/node.bcrypt.js/releases/download/v5.0.1/bcrypt_lib-v5.0.1-napi-v3-linux-arm-glibc.tar.gz
node-pre-gyp WARN Pre-built binaries not installable for bcrypt@5.0.1 and node@14.17.6 (node-v83 ABI, glibc) (falling back to source compile with node-gyp)
node-pre-gyp WARN Hit error response status 404 Not Found on https://github.com/kelektiv/node.bcrypt.js/releases/download/v5.0.1/bcrypt_lib-v5.0.1-napi-v3-linux-arm-glibc.tar.gz
make: Entering directory '/usr/lib/node_modules/node-red/node_modules/bcrypt/build'
  CC(target) Release/obj.target/nothing/../node-addon-api/nothing.o
  AR(target) Release/obj.target/../node-addon-api/nothing.a
  COPY Release/nothing.a
  CXX(target) Release/obj.target/bcrypt_lib/src/blowfish.o
  CXX(target) Release/obj.target/bcrypt_lib/src/bcrypt.o
  CXX(target) Release/obj.target/bcrypt_lib/src/bcrypt_node.o
  SOLINK_MODULE(target) Release/obj.target/bcrypt_lib.node
  COPY Release/bcrypt_lib.node
  COPY /usr/lib/node_modules/node-red/node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node
  TOUCH Release/obj.target/action_after_build.stamp
make: Leaving directory '/usr/lib/node_modules/node-red/node_modules/bcrypt/build'
+ node-red@2.0.6
added 292 packages from 372 contributors in 349.729s
2.0.6
Now create basic package.json for the user and move any global nodes
Running npm rebuild
Installing extra nodes: node-red-node-pi-gpio@latest node-red-node-random@latest node-red-node-ping@latest node-red-contrib-play-audio@latest node-red-node-smooth@latest node-red-node-serialport@latest :

> @serialport/bindings@9.2.4 install /home/pi/.node-red/node_modules/@serialport/bindings
> prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild

prebuild-install WARN install No prebuilt binaries found (target=14.17.6 runtime=node arch=arm libc= platform=linux)
make: Entering directory '/home/pi/.node-red/node_modules/@serialport/bindings/build'
  CXX(target) Release/obj.target/bindings/src/serialport.o
../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Open(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:78:69: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
   uv_queue_work(uv_default_loop(), req, EIO_Open, (uv_after_work_cb)EIO_AfterOpen);
                                                                     ^ ~~~~~~~~~~~~../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Update(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:135:71: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
   uv_queue_work(uv_default_loop(), req, EIO_Update, (uv_after_work_cb)EIO_AfterUpdate);
                                                                       ^ ~~~~~~~~~~~~~~../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Close(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:175:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
   uv_queue_work(uv_default_loop(), req, EIO_Close, (uv_after_work_cb)EIO_AfterClose);
                                                                      ^ ~~~~~~~~~~~~~../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Flush(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:215:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
   uv_queue_work(uv_default_loop(), req, EIO_Flush, (uv_after_work_cb)EIO_AfterFlush);
                                                                      ^ ~~~~~~~~~~~~~../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Set(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:271:68: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
   uv_queue_work(uv_default_loop(), req, EIO_Set, (uv_after_work_cb)EIO_AfterSet);
                                                                    ^ ~~~~~~~~~~~../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Get(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:316:68: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
   uv_queue_work(uv_default_loop(), req, EIO_Get, (uv_after_work_cb)EIO_AfterGet);
                                                                    ^ ~~~~~~~~~~~../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE GetBaudRate(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:366:76: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
   uv_queue_work(uv_default_loop(), req, EIO_GetBaudRate, (uv_after_work_cb)EIO_AfterGetBaudRate);
                                                                            ^ ~~~~~~~~~~~~~~~~~~~../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Drain(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:412:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
   uv_queue_work(uv_default_loop(), req, EIO_Drain, (uv_after_work_cb)EIO_AfterDrain);
                                                                      ^ ~~~~~~~~~~~~~../src/serialport.cpp: At global scope:
../src/serialport.cpp:433:28: warning: unnecessary parentheses in declaration of ‘ToParityEnum’ [-Wparentheses]
 SerialPortParity NAN_INLINE(ToParityEnum(const v8::Local<v8::String>& v8str)) {
                            ^
../src/serialport.cpp:452:30: warning: unnecessary parentheses in declaration of ‘ToStopBitEnum’ [-Wparentheses]
 SerialPortStopBits NAN_INLINE(ToStopBitEnum(double stopBits)) {
                              ^
In file included from ../../../nan/nan.h:58,
                 from ../src/./serialport.h:13,
                 from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/14.17.6/include/node/node.h:758:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type]
       (node::addon_register_func) (regfunc), \
                                           ^
/home/pi/.cache/node-gyp/14.17.6/include/node/node.h:792:3: note: in expansion of macro ‘NODE_MODULE_X’
   NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage)
   ^ ~~~~~~~~~~~~../src/serialport.cpp:486:1: note: in expansion of macro ‘NODE_MODULE’
 NODE_MODULE(serialport, init);
 ^ ~~~~~~~~~~
  CXX(target) Release/obj.target/bindings/src/serialport_unix.o
../src/serialport_unix.cpp: In function ‘int setup(int, OpenBaton*)’:
../src/serialport_unix.cpp:176:60: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 1005 [-Wformat-truncation=]
     snprintf(data->errorString, sizeof(data->errorString), "Error %s Cannot open %s", strerror(errno), data->path);
                                                            ^ ~~~~~~~~~~~~~~~~~~~~~~~~../src/serialport_unix.cpp:176:13: note: ‘snprintf’ output 20 or more bytes (assuming 1043) into a destination of size 1024
     snprintf(data->errorString, sizeof(data->errorString), "Error %s Cannot open %s", strerror(errno), data->path);
     ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~../src/serialport_unix.cpp: In function ‘void EIO_Open(uv_work_t*)’:
../src/serialport_unix.cpp:86:60: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 1003 [-Wformat-truncation=]
     snprintf(data->errorString, sizeof(data->errorString), "Error: %s, cannot open %s", strerror(errno), data->path);
                                                            ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~../src/serialport_unix.cpp:86:13: note: ‘snprintf’ output 22 or more bytes (assuming 1045) into a destination of size 1024
     snprintf(data->errorString, sizeof(data->errorString), "Error: %s, cannot open %s", strerror(errno), data->path);
     ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  CXX(target) Release/obj.target/bindings/src/poller.o
  CXX(target) Release/obj.target/bindings/src/serialport_linux.o
  SOLINK_MODULE(target) Release/obj.target/bindings.node
  COPY Release/bindings.node
make: Leaving directory '/home/pi/.node-red/node_modules/@serialport/bindings/build'
npm notice created a lockfile as package-lock.json. You should commit this file.
+ node-red-node-ping@0.3.1
+ node-red-node-smooth@0.1.2
+ node-red-node-pi-gpio@1.2.3
+ node-red-node-serialport@0.14.1
+ node-red-contrib-play-audio@2.5.0
+ node-red-node-random@0.4.0
added 80 packages from 51 contributors in 169.258s
Now add the shortcut and start/stop/log scripts to the menu
Now add systemd script and configure it for pi
ln: failed to create symbolic link '/usr/bin/python': File exists
Now add launcher to top bar, add cpu temp example, make sure ping works
The user `pi' is already a member of `gpio'.
Memory : 1.4G
Started : Fri 1 Oct 00:04:31 CEST 2021
Finished: Fri 1 Oct 00:16:12 CEST 2021

```

---

<div class="post-metadata">

**Author:** ![ebolisa](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ebolisa/32/89203_2.png) [@ebolisa](https://discourse.nodered.org/u/ebolisa)\
**Post date:** [3 October 2021 09:33 UTC](https://discourse.nodered.org/t/reading-gpios-issue/51759/10 "2021-10-03T09:33:43Z")

</div>

@Colin Hi, have you seen anything interesting in that log?

I'm almost done with my project, but I'm still not clear on how and when the inputs are read on a Rpi.

Node-red is started via service and runs on the background. Meaning I can go on and use Python/PHP to read/write to GPIOs?

So, when are the inputs read actually? I understand when the user logs in the UI page till he/she logs out, right? If so, is it safe to say that the GPIOs used to read the signals are **free-to-be-used** till then and node-red wouldn't/doesn't clash with other applications?

I appreciate some inside on this.  
TIA

---

<div class="post-metadata">

**Author:** ![Gunner](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gunner/32/43582_2.png) [@Gunner](https://discourse.nodered.org/u/Gunner)\
**Post date:** [3 October 2021 10:02 UTC](https://discourse.nodered.org/t/reading-gpios-issue/51759/11 "2021-10-03T10:02:31Z")

</div>

> [@ebolisa](#):
>
> So, when are the inputs read actually?

It would seem to me that as long as Node-Red is running, the `rpi-gpio in/out` nodes are watching the GPIOs for state changes (or controlling the states), and thus possibly not a good idea to also have another process doing the same (lest there be a conflict in whether a pin be input, output, pullup/down, etc.).

The UI (dashboard) is another process altogether and not a dependency in reading or writing to GPIO from the appropriate nodes.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [3 October 2021 17:33 UTC](https://discourse.nodered.org/t/reading-gpios-issue/51759/12 "2021-10-03T17:33:03Z")

</div>

That isn't the log from starting node red, that is the installer log, I think.

In terminal, run

```auto
node-red-stop
node-red-start

```

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [3 October 2021 17:42 UTC](https://discourse.nodered.org/t/reading-gpios-issue/51759/13 "2021-10-03T17:42:07Z")

</div>

As @Gunner says, node red is attached to the ports all the time node red is running. Node red doesn't read an input pin, the pin, effectively, tells node red whenever it's state changes.

---

<div class="post-metadata">

**Author:** ![ebolisa](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ebolisa/32/89203_2.png) [@ebolisa](https://discourse.nodered.org/u/ebolisa)\
**Post date:** [4 October 2021 10:17 UTC](https://discourse.nodered.org/t/reading-gpios-issue/51759/14 "2021-10-04T10:17:53Z")

</div>

Hi,

I run **gpio allreadall** before, during and after node-red execution and it's clear that the used GPIOs are are not released by node-red (even with the browser off) thus not available to other applications.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [4 October 2021 13:56 UTC](https://discourse.nodered.org/t/reading-gpios-issue/51759/15 "2021-10-04T13:56:32Z")

</div>

> [@ebolisa](#):
>
> the used GPIOs are are not released by node-red (even with the browser off)

If you have a flow that does something useful with your system when a pin is triggered (sets off an alarm if a window is opened for example), you would not want the alarm to be de-activated just because you did not have a browser open.

---

<div class="post-metadata">

**Author:** ![Gunner](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gunner/32/43582_2.png) [@Gunner](https://discourse.nodered.org/u/Gunner)\
**Post date:** [4 October 2021 21:54 UTC](https://discourse.nodered.org/t/reading-gpios-issue/51759/16 "2021-10-04T21:54:53Z")

</div>

> [@ebolisa](#):
>
> it's clear that the used GPIOs are are not released by node-red (even with the browser off)

`rpi-gpio` nodes are browser agnostic. As long as Node-Red is running, those nodes are linked to their respective GPIO.

> [@ebolisa](#):
>
> thus not available to other applications.

AFAIK this is normal behavior for all other coded routines (python, etc.) that do not release the GPIO, as you wouldn't want some other code messing around with them either.

I suppose you could experiment with disabling a `rpi-gpio` node when you want to use it with some other code. 🤔 Not sure if that would work for a dynamic adjustment, or only after a Deploy.

---

<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:** [3 December 2021 21:54 UTC](https://discourse.nodered.org/t/reading-gpios-issue/51759/17 "2021-12-03T21:54:55Z")

</div>

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