"Orange Pi Zero" how to manage pins?

I have an "Orange Pi Zero" and "Node-red" installed on it.
and I don't understand how to manage pins with Node-red. I searched on forum but, the answers are mainly for "Raspberry" not for "Orange Pi". Or is it for "Node-red" the same thing? Ideally, it would be if there would be a link to an example enabling/disabling a pin/led.

AFAIK, there isn't a simple working solution for controlling the pins on an Orange Pi using Node-RED :frowning:

Thanks for the answer!
Then maybe with the help of python? Python will manages of pins and Node-red will tracks changes?

Yes - If you can find a working Orange Pi version of the Raspberry Pi RPi.GPIO library, then it could be possible to hack your Node-RED to use it

I don't think that I can hack Raspberry Pi RPi.GPIO library. Maybe someone has a positive experience in this, please help!
I will glad any possible ways to control pins of Orange Pi by Node-red.

Yes, you could use Python called via an exec node to do it, or possibly better communicate with the python via mqtt.

1 Like

I have not used an OPi Zero but I am running two OPi Ones running Armbian and when I first started playing with them I used this node set and it worked for me:

I have them embedded now and am not using the GPIO functionality on either one at this time so I don't know if recent updates may have broken anything there but I would recommend giving that a try.

2 Likes

This is the first thing that I have undertaken, but it is not installable. I think because problems with old libraries or, i have no idea!

The log

-----------------------------------------------------------
2020-10-07T11:50:09.655Z Install : node-red-contrib-python3-function 0.0.4

2020-10-07T11:50:09.844Z npm install --no-audit --no-update-notifier --no-fund --save --save-prefix="~" --production node-red-contrib-python3-function@0.0.4
2020-10-07T11:50:25.713Z [out] + node-red-contrib-python3-function@0.0.4
2020-10-07T11:50:25.713Z [out] added 1 package from 2 contributors in 9.049s
2020-10-07T11:50:25.783Z rc=0

-----------------------------------------------------------
2020-10-07T12:09:46.615Z Install : node-red-contrib-opi-gpio 0.0.5

2020-10-07T12:09:46.657Z npm install --no-audit --no-update-notifier --no-fund --save --save-prefix="~" --production node-red-contrib-opi-gpio@0.0.5
2020-10-07T12:10:02.440Z [out] 
2020-10-07T12:10:02.440Z [out] > epoll@1.0.2 install /home/zerg/.node-red/node_modules/epoll
2020-10-07T12:10:02.440Z [out] > node-gyp rebuild
2020-10-07T12:10:02.440Z [out] 
2020-10-07T12:10:07.833Z [out] make: Entering directory '/home/zerg/.node-red/node_modules/epoll/build'
2020-10-07T12:10:07.845Z [out]   CXX(target) Release/obj.target/epoll/src/epoll.o
2020-10-07T12:10:13.324Z [err] In file included from ../../nan/nan_converters.h:67:0,
2020-10-07T12:10:13.324Z [err]                  from ../../nan/nan.h:202,
2020-10-07T12:10:13.324Z [err]                  from ../src/epoll.cc:15:
2020-10-07T12:10:13.324Z [err] ../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ToFactoryBase<v8::Boolean>::return_t Nan::imp::ToFactory<v8::Boolean>::convert(v8::Local<v8::Value>)’:
2020-10-07T12:10:13.324Z [err] ../../nan/nan_converters_43_inl.h:18:69: warning: ‘v8::MaybeLocal<v8::Boolean> v8::Value::ToBoolean(v8::Local<v8::Context>) const’ is deprecated: ToBoolean can never throw. Use Local version. [-Wdeprecated-declarations]
2020-10-07T12:10:13.324Z [err]        val->To ## TYPE(v8::Isolate::GetCurrent()->GetCurrentContext())          \
2020-10-07T12:10:13.324Z [err]                                                                      ^
2020-10-07T12:10:13.324Z [err] ../../nan/nan_converters_43_inl.h:22:1: note: in expansion of macro ‘X’
2020-10-07T12:10:13.324Z [err]  X(Boolean)
2020-10-07T12:10:13.324Z [err]  ^
2020-10-07T12:10:13.326Z [err] In file included from /home/zerg/.cache/node-gyp/12.18.4/include/node/v8-internal.h:14:0,
2020-10-07T12:10:13.326Z [err]                  from /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:27,
2020-10-07T12:10:13.326Z [err]                  from ../src/epoll.cc:11:
2020-10-07T12:10:13.326Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:2664:59: note: declared here
2020-10-07T12:10:13.326Z [err]                  V8_WARN_UNUSED_RESULT MaybeLocal<Boolean> ToBoolean(
2020-10-07T12:10:13.326Z [err]                                                            ^
2020-10-07T12:10:13.326Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
2020-10-07T12:10:13.326Z [err]    declarator __attribute__((deprecated(message)))
2020-10-07T12:10:13.326Z [err]    ^~~~~~~~~~
2020-10-07T12:10:13.352Z [err] In file included from ../../nan/nan_converters.h:67:0,
2020-10-07T12:10:13.352Z [err]                  from ../../nan/nan.h:202,
2020-10-07T12:10:13.352Z [err]                  from ../src/epoll.cc:15:
2020-10-07T12:10:13.352Z [err] ../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ValueFactoryBase<bool>::return_t Nan::imp::ToFactory<bool>::convert(v8::Local<v8::Value>)’:
2020-10-07T12:10:13.352Z [err] ../../nan/nan_converters_43_inl.h:37:57: warning: ‘v8::Maybe<bool> v8::Value::BooleanValue(v8::Local<v8::Context>) const’ is deprecated: BooleanValue can never throw. Use Isolate version. [-Wdeprecated-declarations]
2020-10-07T12:10:13.352Z [err]    return val->NAME ## Value(isolate->GetCurrentContext());                     \
2020-10-07T12:10:13.352Z [err]                                                          ^
2020-10-07T12:10:13.352Z [err] ../../nan/nan_converters_43_inl.h:40:1: note: in expansion of macro ‘X’
2020-10-07T12:10:13.352Z [err]  X(bool, Boolean)
2020-10-07T12:10:13.352Z [err]  ^
2020-10-07T12:10:13.354Z [err] In file included from /home/zerg/.cache/node-gyp/12.18.4/include/node/v8-internal.h:14:0,
2020-10-07T12:10:13.354Z [err]                  from /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:27,
2020-10-07T12:10:13.354Z [err]                  from ../src/epoll.cc:11:
2020-10-07T12:10:13.354Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:2702:51: note: declared here
2020-10-07T12:10:13.354Z [err]                  V8_WARN_UNUSED_RESULT Maybe<bool> BooleanValue(
2020-10-07T12:10:13.354Z [err]                                                    ^
2020-10-07T12:10:13.354Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
2020-10-07T12:10:13.354Z [err]    declarator __attribute__((deprecated(message)))
2020-10-07T12:10:13.354Z [err]    ^~~~~~~~~~
2020-10-07T12:10:13.399Z [err] In file included from ../../nan/nan_new.h:189:0,
2020-10-07T12:10:13.399Z [err]                  from ../../nan/nan.h:203,
2020-10-07T12:10:13.399Z [err]                  from ../src/epoll.cc:15:
2020-10-07T12:10:13.399Z [err] ../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase<v8::Function>::return_t Nan::imp::Factory<v8::Function>::New(Nan::FunctionCallback, v8::Local<v8::Value>)’:
2020-10-07T12:10:13.399Z [err] ../../nan/nan_implementation_12_inl.h:105:32: error: no matching function for call to ‘v8::Function::New(v8::Isolate*&, void (&)(const v8::FunctionCallbackInfo<v8::Value>&), v8::Local<v8::Object>&)’
2020-10-07T12:10:13.399Z [err]                            , obj));
2020-10-07T12:10:13.399Z [err]                                 ^
2020-10-07T12:10:13.400Z [err] In file included from ../src/epoll.cc:11:0:
2020-10-07T12:10:13.400Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:4275:31: note: candidate: static v8::MaybeLocal<v8::Function> v8::Function::New(v8::Local<v8::Context>, v8::FunctionCallback, v8::Local<v8::Value>, int, v8::ConstructorBehavior, v8::SideEffectType)
2020-10-07T12:10:13.400Z [err]    static MaybeLocal<Function> New(
2020-10-07T12:10:13.400Z [err]                                ^~~
2020-10-07T12:10:13.400Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:4275:31: note:   no known conversion for argument 1 from ‘v8::Isolate*’ to ‘v8::Local<v8::Context>’
2020-10-07T12:10:13.443Z [err] In file included from ../../nan/nan_new.h:189:0,
2020-10-07T12:10:13.443Z [err]                  from ../../nan/nan.h:203,
2020-10-07T12:10:13.443Z [err]                  from ../src/epoll.cc:15:
2020-10-07T12:10:13.443Z [err] ../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase<v8::StringObject>::return_t Nan::imp::Factory<v8::StringObject>::New(v8::Local<v8::String>)’:
2020-10-07T12:10:13.443Z [err] ../../nan/nan_implementation_12_inl.h:337:37: error: no matching function for call to ‘v8::StringObject::New(v8::Local<v8::String>&)’
2020-10-07T12:10:13.443Z [err]    return v8::StringObject::New(value).As<v8::StringObject>();
2020-10-07T12:10:13.443Z [err]                                      ^
2020-10-07T12:10:13.444Z [err] In file included from ../src/epoll.cc:11:0:
2020-10-07T12:10:13.444Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:5531:23: note: candidate: static v8::Local<v8::Value> v8::StringObject::New(v8::Isolate*, v8::Local<v8::String>)
2020-10-07T12:10:13.444Z [err]    static Local<Value> New(Isolate* isolate, Local<String> value);
2020-10-07T12:10:13.444Z [err]                        ^~~
2020-10-07T12:10:13.444Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:5531:23: note:   candidate expects 2 arguments, 1 provided
2020-10-07T12:10:13.444Z [err] In file included from ../../nan/nan_new.h:189:0,
2020-10-07T12:10:13.444Z [err]                  from ../../nan/nan.h:203,
2020-10-07T12:10:13.444Z [err]                  from ../src/epoll.cc:15:
2020-10-07T12:10:13.444Z [err] ../../nan/nan_implementation_12_inl.h:337:58: error: expected primary-expression before ‘>’ token
2020-10-07T12:10:13.444Z [err]    return v8::StringObject::New(value).As<v8::StringObject>();
2020-10-07T12:10:13.444Z [err]                                                           ^
2020-10-07T12:10:13.444Z [err] ../../nan/nan_implementation_12_inl.h:337:60: error: expected primary-expression before ‘)’ token
2020-10-07T12:10:13.444Z [err]    return v8::StringObject::New(value).As<v8::StringObject>();
2020-10-07T12:10:13.444Z [err]                                                             ^
2020-10-07T12:10:13.512Z [err] In file included from ../src/epoll.cc:15:0:
2020-10-07T12:10:13.512Z [err] ../../nan/nan.h: In function ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’:
2020-10-07T12:10:13.512Z [err] ../../nan/nan.h:840:60: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
2020-10-07T12:10:13.512Z [err]          v8::Isolate::GetCurrent(), target, func, argc, argv);
2020-10-07T12:10:13.512Z [err]                                                             ^
2020-10-07T12:10:13.513Z [err] In file included from ../src/epoll.cc:12:0:
2020-10-07T12:10:13.513Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/node.h:182:50: note: declared here
2020-10-07T12:10:13.513Z [err]                  NODE_EXTERN v8::Local<v8::Value> MakeCallback(
2020-10-07T12:10:13.513Z [err]                                                   ^
2020-10-07T12:10:13.513Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/node.h:101:42: note: in definition of macro ‘NODE_DEPRECATED’
2020-10-07T12:10:13.513Z [err]      __attribute__((deprecated(message))) declarator
2020-10-07T12:10:13.513Z [err]                                           ^~~~~~~~~~
2020-10-07T12:10:13.515Z [err] In file included from ../src/epoll.cc:15:0:
2020-10-07T12:10:13.515Z [err] ../../nan/nan.h: In function ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)’:
2020-10-07T12:10:13.515Z [err] ../../nan/nan.h:855:62: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
2020-10-07T12:10:13.515Z [err]          v8::Isolate::GetCurrent(), target, symbol, argc, argv);
2020-10-07T12:10:13.515Z [err]                                                               ^
2020-10-07T12:10:13.516Z [err] In file included from ../src/epoll.cc:12:0:
2020-10-07T12:10:13.516Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/node.h:175:50: note: declared here
2020-10-07T12:10:13.516Z [err]                  NODE_EXTERN v8::Local<v8::Value> MakeCallback(
2020-10-07T12:10:13.516Z [err]                                                   ^
2020-10-07T12:10:13.516Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/node.h:101:42: note: in definition of macro ‘NODE_DEPRECATED’
2020-10-07T12:10:13.516Z [err]      __attribute__((deprecated(message))) declarator
2020-10-07T12:10:13.516Z [err]                                           ^~~~~~~~~~
2020-10-07T12:10:13.516Z [err] In file included from ../src/epoll.cc:15:0:
2020-10-07T12:10:13.516Z [err] ../../nan/nan.h: In function ‘v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, const char*, int, v8::Local<v8::Value>*)’:
2020-10-07T12:10:13.516Z [err] ../../nan/nan.h:870:62: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, const char*, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
2020-10-07T12:10:13.516Z [err]          v8::Isolate::GetCurrent(), target, method, argc, argv);
2020-10-07T12:10:13.516Z [err]                                                               ^
2020-10-07T12:10:13.517Z [err] In file included from ../src/epoll.cc:12:0:
2020-10-07T12:10:13.517Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/node.h:168:50: note: declared here
2020-10-07T12:10:13.517Z [err]                  NODE_EXTERN v8::Local<v8::Value> MakeCallback(
2020-10-07T12:10:13.517Z [err]                                                   ^
2020-10-07T12:10:13.517Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/node.h:101:42: note: in definition of macro ‘NODE_DEPRECATED’
2020-10-07T12:10:13.517Z [err]      __attribute__((deprecated(message))) declarator
2020-10-07T12:10:13.517Z [err]                                           ^~~~~~~~~~
2020-10-07T12:10:13.521Z [err] In file included from ../src/epoll.cc:15:0:
2020-10-07T12:10:13.521Z [err] ../../nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Local<v8::Value>)’:
2020-10-07T12:10:13.521Z [err] ../../nan/nan.h:916:53: error: no matching function for call to ‘v8::Value::ToString()’
2020-10-07T12:10:13.521Z [err]        v8::Local<v8::String> string = from->ToString();
2020-10-07T12:10:13.521Z [err]                                                      ^
2020-10-07T12:10:13.522Z [err] In file included from ../src/epoll.cc:11:0:
2020-10-07T12:10:13.522Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:2668:44: note: candidate: v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const
2020-10-07T12:10:13.522Z [err]    V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
2020-10-07T12:10:13.522Z [err]                                             ^~~~~~~~
2020-10-07T12:10:13.522Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:2668:44: note:   candidate expects 1 argument, 0 provided
2020-10-07T12:10:13.522Z [err] In file included from /home/zerg/.cache/node-gyp/12.18.4/include/node/v8-internal.h:14:0,
2020-10-07T12:10:13.522Z [err]                  from /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:27,
2020-10-07T12:10:13.522Z [err]                  from ../src/epoll.cc:11:
2020-10-07T12:10:13.522Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:2684:31: note: candidate: v8::Local<v8::String> v8::Value::ToString(v8::Isolate*) const
2020-10-07T12:10:13.522Z [err]                  Local<String> ToString(Isolate* isolate) const);
2020-10-07T12:10:13.566Z [err]                       ^
2020-10-07T12:10:13.566Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
2020-10-07T12:10:13.566Z [err]    declarator __attribute__((deprecated(message)))
2020-10-07T12:10:13.566Z [err]    ^~~~~~~~~~
2020-10-07T12:10:13.568Z [err] In file included from ../src/epoll.cc:15:0:
2020-10-07T12:10:13.568Z [err] ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const v8::Local<v8::String>&, const v8::Local<v8::Value>&)’:
2020-10-07T12:10:13.568Z [err] ../../nan/nan.h:1544:42: warning: ‘bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
2020-10-07T12:10:13.568Z [err]      New(persistentHandle)->Set(key, value);
2020-10-07T12:10:13.568Z [err]                                           ^
2020-10-07T12:10:13.568Z [err] In file included from /home/zerg/.cache/node-gyp/12.18.4/include/node/v8-internal.h:14:0,
2020-10-07T12:10:13.568Z [err]                  from /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:27,
2020-10-07T12:10:13.568Z [err]                  from ../src/epoll.cc:11:
2020-10-07T12:10:13.568Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:3499:22: note: declared here
2020-10-07T12:10:13.568Z [err]                  bool Set(Local<Value> key, Local<Value> value));
2020-10-07T12:10:13.568Z [err]                       ^
2020-10-07T12:10:13.568Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
2020-10-07T12:10:13.568Z [err]    declarator __attribute__((deprecated(message)))
2020-10-07T12:10:13.568Z [err]    ^~~~~~~~~~
2020-10-07T12:10:13.571Z [err] In file included from ../src/epoll.cc:15:0:
2020-10-07T12:10:13.571Z [err] ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(uint32_t, const v8::Local<v8::Value>&)’:
2020-10-07T12:10:13.571Z [err] ../../nan/nan.h:1550:44: warning: ‘bool v8::Object::Set(uint32_t, v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
2020-10-07T12:10:13.571Z [err]      New(persistentHandle)->Set(index, value);
2020-10-07T12:10:13.571Z [err]                                             ^
2020-10-07T12:10:13.572Z [err] In file included from /home/zerg/.cache/node-gyp/12.18.4/include/node/v8-internal.h:14:0,
2020-10-07T12:10:13.572Z [err]                  from /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:27,
2020-10-07T12:10:13.572Z [err]                  from ../src/epoll.cc:11:
2020-10-07T12:10:13.572Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:3508:22: note: declared here
2020-10-07T12:10:13.572Z [err]                  bool Set(uint32_t index, Local<Value> value));
2020-10-07T12:10:13.572Z [err]                       ^
2020-10-07T12:10:13.572Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
2020-10-07T12:10:13.572Z [err]    declarator __attribute__((deprecated(message)))
2020-10-07T12:10:13.572Z [err]    ^~~~~~~~~~
2020-10-07T12:10:13.574Z [err] In file included from ../src/epoll.cc:15:0:
2020-10-07T12:10:13.574Z [err] ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(const char*) const’:
2020-10-07T12:10:13.574Z [err] ../../nan/nan.h:1556:61: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
2020-10-07T12:10:13.574Z [err]          New(persistentHandle)->Get(New(key).ToLocalChecked()));
2020-10-07T12:10:13.574Z [err]                                                              ^
2020-10-07T12:10:13.574Z [err] In file included from /home/zerg/.cache/node-gyp/12.18.4/include/node/v8-internal.h:14:0,
2020-10-07T12:10:13.574Z [err]                  from /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:27,
2020-10-07T12:10:13.574Z [err]                  from ../src/epoll.cc:11:
2020-10-07T12:10:13.574Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:3553:51: note: declared here
2020-10-07T12:10:13.574Z [err]    V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
2020-10-07T12:10:13.574Z [err]                                                    ^
2020-10-07T12:10:13.574Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
2020-10-07T12:10:13.574Z [err]    declarator __attribute__((deprecated(message)))
2020-10-07T12:10:13.574Z [err]    ^~~~~~~~~~
2020-10-07T12:10:13.576Z [err] In file included from ../src/epoll.cc:15:0:
2020-10-07T12:10:13.576Z [err] ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(const v8::Local<v8::String>&) const’:
2020-10-07T12:10:13.576Z [err] ../../nan/nan.h:1562:55: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
2020-10-07T12:10:13.576Z [err]      return scope.Escape(New(persistentHandle)->Get(key));
2020-10-07T12:10:13.576Z [err]                                                        ^
2020-10-07T12:10:13.577Z [err] In file included from /home/zerg/.cache/node-gyp/12.18.4/include/node/v8-internal.h:14:0,
2020-10-07T12:10:13.577Z [err]                  from /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:27,
2020-10-07T12:10:13.577Z [err]                  from ../src/epoll.cc:11:
2020-10-07T12:10:13.577Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:3553:51: note: declared here
2020-10-07T12:10:13.577Z [err]    V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
2020-10-07T12:10:13.577Z [err]                                                    ^
2020-10-07T12:10:13.577Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
2020-10-07T12:10:13.577Z [err]    declarator __attribute__((deprecated(message)))
2020-10-07T12:10:13.577Z [err]    ^~~~~~~~~~
2020-10-07T12:10:13.578Z [err] In file included from ../src/epoll.cc:15:0:
2020-10-07T12:10:13.578Z [err] ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(uint32_t) const’:
2020-10-07T12:10:13.578Z [err] ../../nan/nan.h:1567:57: warning: ‘v8::Local<v8::Value> v8::Object::Get(uint32_t)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
2020-10-07T12:10:13.578Z [err]      return scope.Escape(New(persistentHandle)->Get(index));
2020-10-07T12:10:13.578Z [err]                                                          ^
2020-10-07T12:10:13.579Z [err] In file included from /home/zerg/.cache/node-gyp/12.18.4/include/node/v8-internal.h:14:0,
2020-10-07T12:10:13.579Z [err]                  from /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:27,
2020-10-07T12:10:13.579Z [err]                  from ../src/epoll.cc:11:
2020-10-07T12:10:13.579Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:3557:51: note: declared here
2020-10-07T12:10:13.579Z [err]    V8_DEPRECATED("Use maybe version", Local<Value> Get(uint32_t index));
2020-10-07T12:10:13.579Z [err]                                                    ^
2020-10-07T12:10:13.579Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
2020-10-07T12:10:13.579Z [err]    declarator __attribute__((deprecated(message)))
2020-10-07T12:10:13.579Z [err]    ^~~~~~~~~~
2020-10-07T12:10:13.707Z [err] In file included from /usr/include/c++/7/cassert:44:0,
2020-10-07T12:10:13.707Z [err]                  from /home/zerg/.cache/node-gyp/12.18.4/include/node/node_object_wrap.h:26,
2020-10-07T12:10:13.707Z [err]                  from ../src/epoll.cc:13:
2020-10-07T12:10:13.707Z [err] ../../nan/nan_object_wrap.h: In destructor ‘virtual Nan::ObjectWrap::~ObjectWrap()’:
2020-10-07T12:10:13.707Z [err] ../../nan/nan_object_wrap.h:24:25: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘IsNearDeath’
2020-10-07T12:10:13.707Z [err]      assert(persistent().IsNearDeath());
2020-10-07T12:10:13.707Z [err]                          ^
2020-10-07T12:10:13.716Z [err] In file included from ../../nan/nan.h:2365:0,
2020-10-07T12:10:13.716Z [err]                  from ../src/epoll.cc:15:
2020-10-07T12:10:13.716Z [err] ../../nan/nan_object_wrap.h: In member function ‘void Nan::ObjectWrap::MakeWeak()’:
2020-10-07T12:10:13.716Z [err] ../../nan/nan_object_wrap.h:67:34: warning: ‘void v8::PersistentBase<T>::MarkIndependent() [with T = v8::Object]’ is deprecated: Weak objects are always considered independent. Use TracedGlobal when trying to use EmbedderHeapTracer. Use a strong handle when trying to keep an object alive. [-Wdeprecated-declarations]
2020-10-07T12:10:13.716Z [err]      persistent().MarkIndependent();
2020-10-07T12:10:13.716Z [err]                                   ^
2020-10-07T12:10:13.716Z [err] In file included from /home/zerg/.cache/node-gyp/12.18.4/include/node/v8-internal.h:14:0,
2020-10-07T12:10:13.716Z [err]                  from /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:27,
2020-10-07T12:10:13.716Z [err]                  from ../src/epoll.cc:11:
2020-10-07T12:10:13.716Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:570:22: note: declared here
2020-10-07T12:10:13.716Z [err]        V8_INLINE void MarkIndependent());
2020-10-07T12:10:13.716Z [err]                       ^
2020-10-07T12:10:13.716Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
2020-10-07T12:10:13.716Z [err]    declarator __attribute__((deprecated(message)))
2020-10-07T12:10:13.716Z [err]    ^~~~~~~~~~
2020-10-07T12:10:13.721Z [err] In file included from /usr/include/c++/7/cassert:44:0,
2020-10-07T12:10:13.721Z [err]                  from /home/zerg/.cache/node-gyp/12.18.4/include/node/node_object_wrap.h:26,
2020-10-07T12:10:13.721Z [err]                  from ../src/epoll.cc:13:
2020-10-07T12:10:13.721Z [err] ../../nan/nan_object_wrap.h: In static member function ‘static void Nan::ObjectWrap::WeakCallback(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’:
2020-10-07T12:10:13.721Z [err] ../../nan/nan_object_wrap.h:124:26: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘IsNearDeath’
2020-10-07T12:10:13.721Z [err]      assert(wrap->handle_.IsNearDeath());
2020-10-07T12:10:13.721Z [err]                           ^
2020-10-07T12:10:13.879Z [err] ../src/epoll.cc: In static member function ‘static void Epoll::Init(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’:
2020-10-07T12:10:13.879Z [err] ../src/epoll.cc:175:39: error: no matching function for call to ‘v8::FunctionTemplate::GetFunction()’
2020-10-07T12:10:13.879Z [err]    constructor.Reset(ctor->GetFunction());
2020-10-07T12:10:13.879Z [err]                                        ^
2020-10-07T12:10:13.880Z [err] In file included from ../src/epoll.cc:11:0:
2020-10-07T12:10:13.880Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:6126:46: note: candidate: v8::MaybeLocal<v8::Function> v8::FunctionTemplate::GetFunction(v8::Local<v8::Context>)
2020-10-07T12:10:13.880Z [err]    V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
2020-10-07T12:10:13.880Z [err]                                               ^~~~~~~~~~~
2020-10-07T12:10:13.881Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:6126:46: note:   candidate expects 1 argument, 0 provided
2020-10-07T12:10:13.882Z [err] ../src/epoll.cc:177:23: error: no matching function for call to ‘v8::FunctionTemplate::GetFunction()’
2020-10-07T12:10:13.882Z [err]      ctor->GetFunction());
2020-10-07T12:10:13.882Z [err]                        ^
2020-10-07T12:10:13.882Z [err] In file included from ../src/epoll.cc:11:0:
2020-10-07T12:10:13.882Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:6126:46: note: candidate: v8::MaybeLocal<v8::Function> v8::FunctionTemplate::GetFunction(v8::Local<v8::Context>)
2020-10-07T12:10:13.882Z [err]    V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
2020-10-07T12:10:13.882Z [err]                                               ^~~~~~~~~~~
2020-10-07T12:10:13.882Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:6126:46: note:   candidate expects 1 argument, 0 provided
2020-10-07T12:10:13.892Z [err] ../src/epoll.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE Epoll::Add(Nan::NAN_METHOD_ARGS_TYPE)’:
2020-10-07T12:10:13.892Z [err] ../src/epoll.cc:210:44: error: no matching function for call to ‘v8::Value::Int32Value()’
2020-10-07T12:10:13.892Z [err]    int err = epoll->Add(info[0]->Int32Value(), info[1]->Int32Value());
2020-10-07T12:10:13.892Z [err]                                             ^
2020-10-07T12:10:13.897Z [err] ../src/epoll.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE Epoll::Modify(Nan::NAN_METHOD_ARGS_TYPE)’:
2020-10-07T12:10:13.897Z [err] ../src/epoll.cc:230:47: error: no matching function for call to ‘v8::Value::Int32Value()’
2020-10-07T12:10:13.897Z [err]    int err = epoll->Modify(info[0]->Int32Value(), info[1]->Int32Value());
2020-10-07T12:10:13.897Z [err]                                                ^
2020-10-07T12:10:13.897Z [err] In file included from ../src/epoll.cc:11:0:
2020-10-07T12:10:13.897Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:2709:40: note: candidate: v8::Maybe<int> v8::Value::Int32Value(v8::Local<v8::Context>) const
2020-10-07T12:10:13.897Z [err]    V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const;
2020-10-07T12:10:13.897Z [err]                                         ^~~~~~~~~~
2020-10-07T12:10:13.898Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:2709:40: note:   candidate expects 1 argument, 0 provided
2020-10-07T12:10:13.898Z [err] ../src/epoll.cc:230:70: error: no matching function for call to ‘v8::Value::Int32Value()’
2020-10-07T12:10:13.898Z [err]    int err = epoll->Modify(info[0]->Int32Value(), info[1]->Int32Value());
2020-10-07T12:10:13.898Z [err]                                                                       ^
2020-10-07T12:10:13.898Z [err] In file included from ../src/epoll.cc:11:0:
2020-10-07T12:10:13.898Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:2709:40: note: candidate: v8::Maybe<int>                               ^~~~~~~~~~
2020-10-07T12:10:13.898Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:2709:40: note:   candidate expects 1 argument, 0 provided
2020-10-07T12:10:13.903Z [err] ../src/epoll.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE Epoll::Remove(Nan::NAN_METHOD_ARGS_TYPE)’:
2020-10-07T12:10:13.903Z [err] ../src/epoll.cc:247:47: error: no matching function for call to ‘v8::Value::Int32Value()’
2020-10-07T12:10:13.903Z [err]    int err = epoll->Remove(info[0]->Int32Value());
2020-10-07T12:10:13.903Z [err]                                                ^
2020-10-07T12:10:13.903Z [err] In file included from ../src/epoll.cc:11:0:
2020-10-07T12:10:13.903Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:2709:40: note: candidate: v8::Maybe<int> v8::Value::Int32Value(v8::Local<v8::Context>) const
2020-10-07T12:10:13.903Z [err]    V8_WARN_UNUSED_RESULT Maybe<int32_t> Int32Value(Local<Context> context) const;
2020-10-07T12:10:13.903Z [err]                                         ^~~~~~~~~~
2020-10-07T12:10:13.903Z [err] /home/zerg/.cache/node-gyp/12.18.4/include/node/v8.h:2709:40: note:   candidate expects 1 argument, 0 provided
2020-10-07T12:10:15.304Z [out] epoll.target.mk:111: recipe for target 'Release/obj.target/epoll/src/epoll.o' failed
2020-10-07T12:10:15.304Z [out] make: Leaving directory '/home/zerg/.node-red/node_modules/epoll/build'
2020-10-07T12:10:15.305Z [err] make: *** [Release/obj.target/epoll/src/epoll.o] Error 1
2020-10-07T12:10:15.318Z [err] gyp
2020-10-07T12:10:15.321Z [err]  
2020-10-07T12:10:15.328Z [err] ERR! stack
2020-10-07T12:10:15.328Z [err]      at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
2020-10-07T12:10:15.330Z [err] gyp
2020-10-07T12:10:15.330Z [err]  ERR! System
2020-10-07T12:10:15.330Z [err]  Linux 5.4.27-sunxi
2020-10-07T12:10:15.331Z [err] gyp
2020-10-07T12:10:15.331Z [err]  ERR! 
2020-10-07T12:10:15.331Z [err] command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
2020-10-07T12:10:15.331Z [err] gyp
2020-10-07T12:10:15.332Z [err]  ERR! 
2020-10-07T12:10:15.332Z [err] cwd /home/zerg/.node-red/node_modules/epoll
2020-10-07T12:10:15.332Z [err] gyp 
2020-10-07T12:10:15.332Z [err] ERR! node -v
2020-10-07T12:10:15.332Z [err]  v12.18.4
2020-10-07T12:10:16.143Z [err]  ERR!
2020-10-07T12:10:16.144Z [err]  This is probably not a problem with npm. There is likely additional logging output above.
2020-10-07T12:10:16.182Z [err] 
2020-10-07T12:10:16.182Z [err] npm 
2020-10-07T12:10:16.184Z [err] ERR! A complete log of this run can be found in:
2020-10-07T12:10:16.184Z [err] npm ERR!     /home/zerg/.npm/_logs/2020-10-07T12_10_16_155Z-debug.log
2020-10-07T12:10:16.213Z rc=1

That is probably an incompatibility with nodejs 12. If you submit an issue on the nodes GitHub page it may get fixed.