@homoran
Performance ist kein Thema, vor Kurzem lief auf dem Gerät eine CCU.IO mit DashUI und noch dazu eine CCU2 im YAHM-LXC-Container - Ab jetzt gehört der BananaPi dem ioBroker, der primär "den Großvater" ablösen soll.
Die Erkenntnis, dass - zumindest bei mir - die "Gerätesuche" mit halb-automatischer Adapter- und Instanzeninstallation nicht funktioniert und ich die Instanzen selbst installieren und konfigurieren muss ist zumindest ein Erfolg, der Weg dahin war steinern und hat mich gefühlt 4 Tage gekostet.
PS:
norfolk@bananapi:~$ uname -a
Linux bananapi 5.10.43-sunxi #21.05.6 SMP Mon Jun 21 15:07:45 UTC 2021 armv7l armv7l armv7l GNU/Linux
norfolk@bananapi:~$ node -v
v12.22.5
norfolk@bananapi:~$ npm -v
6.14.14
norfolk@bananapi:~$ curl -sLf https://iobroker.net/install.sh | bash -
library: loaded
Library version=2021-04-07
==========================================================================
Welcome to the ioBroker installer!
Installer version: 2021-06-18
You might need to enter your password a couple of times.
==========================================================================
==========================================================================
Installing prerequisites (1/4)
==========================================================================
Hit:1 http://ports.ubuntu.com focal InRelease
Hit:2 http://ports.ubuntu.com focal-security InRelease
Hit:4 http://ports.ubuntu.com focal-updates InRelease
Hit:5 http://ports.ubuntu.com focal-backports InRelease
Hit:3 http://mirrors.netix.net/armbian/apt focal InRelease
Reading package lists... Done
==========================================================================
Node.js not found. Installing...
==========================================================================
## Installing the NodeSource Node.js 12.x repo...
## Populating apt-get cache...
+ apt-get update
Hit:1 http://ports.ubuntu.com focal InRelease
Hit:2 http://ports.ubuntu.com focal-security InRelease
Hit:4 http://ports.ubuntu.com focal-updates InRelease
Hit:5 http://ports.ubuntu.com focal-backports InRelease
Hit:3 http://armbian.systemonachip.net/apt focal InRelease
Reading package lists... Done
## Confirming "focal" is supported...
+ curl -sLf -o /dev/null 'https://deb.nodesource.com/node_12.x/dists/focal/Release'
## Adding the NodeSource signing key to your keyring...
+ curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor | tee /usr/share/keyrings/nodesource.gpg >/dev/null
## Creating apt sources list file for the NodeSource Node.js 12.x repo...
+ echo 'deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_12.x focal main' > /etc/apt/sources.list.d/nodesource.list
+ echo 'deb-src [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_12.x focal main' >> /etc/apt/sources.list.d/nodesource.list
## Running `apt-get update` for you...
+ apt-get update
Get:1 https://deb.nodesource.com/node_12.x focal InRelease [4,583 B]
Hit:2 http://ports.ubuntu.com focal InRelease
Hit:3 http://ports.ubuntu.com focal-security InRelease
Hit:5 http://ports.ubuntu.com focal-updates InRelease
Hit:6 http://ports.ubuntu.com focal-backports InRelease
Hit:4 https://imola.armbian.com/apt focal InRelease
Get:7 https://deb.nodesource.com/node_12.x focal/main armhf Packages [777 B]
Fetched 5,360 B in 5s (1,168 B/s)
Reading package lists... Done
## Run `sudo apt-get install -y nodejs` to install Node.js 12.x and npm
## You may also need development tools to build native addons:
sudo apt-get install gcc g++ make
## To install the Yarn package manager, run:
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn
Installed nodejs
Node.js Installed successfully!
Changing npm registry to https://registry.npmjs.org
Installed acl
Installed gcc-c++
Installed libavahi-compat-libdnssd-dev
Installed libudev-dev
Installed libpam0g-dev
Installed libcairo2-dev
Installed libpango1.0-dev
Installed libjpeg-dev
Installed libgif-dev
Installed librsvg2-dev
Installed python-dev
==========================================================================
Creating ioBroker user and directory (2/4)
==========================================================================
User iobroker created
Created /etc/sudoers.d/iobroker
Directory /opt/iobroker created
==========================================================================
Installing ioBroker (3/4)
==========================================================================
In file included from ../../nan/nan.h:58,
from ../src/main.cpp:3:
/home/norfolk/.cache/node-gyp/12.22.5/include/node/node.h:736:43: warning: cast between incompatible function types from ‘void (*)(v8::Local<v8::Object>)’ to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type]
736 | (node::addon_register_func) (regfunc), \
| ^
/home/norfolk/.cache/node-gyp/12.22.5/include/node/node.h:770:3: note: in expansion of macro ‘NODE_MODULE_X’
770 | NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage)
| ^~~~~~~~~~~~~
../src/main.cpp:42:1: note: in expansion of macro ‘NODE_MODULE’
42 | NODE_MODULE(diskusage, Init)
| ^~~~~~~~~~~
In file included from ../../nan/nan.h:58,
from ../src/unix_dgram.cc:5:
/home/norfolk/.cache/node-gyp/12.22.5/include/node/node.h:736:43: warning: cast between incompatible function types from ‘void (*)(v8::Local<v8::Object>)’ to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type]
736 | (node::addon_register_func) (regfunc), \
| ^
/home/norfolk/.cache/node-gyp/12.22.5/include/node/node.h:770:3: note: in expansion of macro ‘NODE_MODULE_X’
770 | NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage)
| ^~~~~~~~~~~~~
../src/unix_dgram.cc:404:1: note: in expansion of macro ‘NODE_MODULE’
404 | NODE_MODULE(unix_dgram, Initialize)
| ^~~~~~~~~~~
../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]
78 | 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]
135 | 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]
175 | 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]
215 | 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]
271 | 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]
316 | 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]
366 | 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]
412 | 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]
433 | SerialPortParity NAN_INLINE(ToParityEnum(const v8::Local<v8::String>& v8str)) {
| ^
../src/serialport.cpp:452:30: warning: unnecessary parentheses in declaration of ‘ToStopBitEnum’ [-Wparentheses]
452 | 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/norfolk/.cache/node-gyp/12.22.5/include/node/node.h:736: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]
736 | (node::addon_register_func) (regfunc), \
| ^
/home/norfolk/.cache/node-gyp/12.22.5/include/node/node.h:770:3: note: in expansion of macro ‘NODE_MODULE_X’
770 | NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage)
| ^~~~~~~~~~~~~
../src/serialport.cpp:486:1: note: in expansion of macro ‘NODE_MODULE’
486 | NODE_MODULE(serialport, init);
| ^~~~~~~~~~~
../src/serialport_unix.cpp: In function ‘int setup(int, OpenBaton*)’:
../src/serialport_unix.cpp:176:82: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 1005 [-Wformat-truncation=]
176 | snprintf(data->errorString, sizeof(data->errorString), "Error %s Cannot open %s", strerror(errno), data->path);
| ^~
In file included from /usr/include/stdio.h:867,
from ../src/serialport.h:10,
from ../src/serialport_unix.cpp:2:
/usr/include/arm-linux-gnueabihf/bits/stdio2.h:67:35: note: ‘__builtin___snprintf_chk’ output 20 or more bytes (assuming 1043) into a destination of size 1024
67 | return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 | __bos (__s), __fmt, __va_arg_pack ());
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/serialport_unix.cpp: In function ‘void EIO_Open(uv_work_t*)’:
../src/serialport_unix.cpp:86:84: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 1003 [-Wformat-truncation=]
86 | snprintf(data->errorString, sizeof(data->errorString), "Error: %s, cannot open %s", strerror(errno), data->path);
| ^~
In file included from /usr/include/stdio.h:867,
from ../src/serialport.h:10,
from ../src/serialport_unix.cpp:2:
/usr/include/arm-linux-gnueabihf/bits/stdio2.h:67:35: note: ‘__builtin___snprintf_chk’ output 22 or more bytes (assuming 1045) into a destination of size 1024
67 | return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 | __bos (__s), __fmt, __va_arg_pack ());
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ATTENTION: Error reporting via Sentry will be activated on next start of ioBroker
ioBroker wants to make sure to deliver the most stable smart home system.
To allow this we decided to implement an automatic error and crash reporting solution into the js-controller and also into adapters.
THIS REPORTING WILL BE ENABLED WITH THE NEXT START OF YOUR IOBROKER!
For any error that leads to the crash of the js-controller or one of the relevant adapters the error details are send to a server. For the js-controller and core adapters this server is located and operated in germany. For community adapters please check the Github Readme of the affected adapter for details which Sentry server is used.
If you want to disable the error reporting you can use the command
'iobroker plugin disable sentry'
This command will also make sure that no adapter that runs on this host will send crash reporting data to sentry.
==========================================================================
Finalizing installation (4/4)
==========================================================================
Enabling autostart...
Created symlink /etc/systemd/system/multi-user.target.wants/iobroker.service → /lib/systemd/system/iobroker.service.
Autostart enabled!
Fixing directory permissions...
==========================================================================
ioBroker was installed successfully
Open http://192.168.2.27:8081 in a browser and start configuring!
==========================================================================
You need to re-login before doing anything else on the console!
norfolk@bananapi:~$