After upgrading from Beta Release v3.60~25 to v3.60~53 on my Ekrano the node “node-red-contrib-socketcan” https://flows.nodered.org/node/node-red-contrib-socketcan is not running anymore and shows an ERR_DLOPEN_FAILED Error-Message:
I updated “node-red-contrib-socketcan” to its latest version 1.2.15 (as of time writing) but does not solve the issue.
I did a “Node-Red” reset and had to install all nodes from scratch. I was able to show some sort of “console” while installing the nodes. First it did not install socketcan, after a second try it did (on v3.60~25) this is a screenshot I took:
If further logs are needed, I can try to provide them. I can ssh into my Ekrano but I am not to familiar with Linux, so please tell me as precisly as possible what to enter in the console
telling me, that all the flows have been stopped, because of missing Node-Types.
Please find attached the Log-File I found here while logging into my Ekrano using ssh:
/data/log/node-red-venus/current
@400000006802414c1eeaf86c Welcome to Node-RED
@400000006802414c1eeb003c ===================
@400000006802414c1eeb080c
@400000006802414c1f39d3ec 18 Apr 14:10:42 - [info] Node-RED version: v3.1.15
@400000006802414c1f6a3a8c 18 Apr 14:10:42 - [info] Node.js version: v20.18.2
@400000006802414c1f97ab5c 18 Apr 14:10:42 - [info] Linux 5.10.109-venus-23 arm LE
@400000006802414e2b22f224 18 Apr 14:10:44 - [info] Loading palette nodes
@40000000680241551ad197cc 18 Apr 14:10:51 - [info] Dashboard version 3.6.5 started at /ui
@40000000680241572cd4e014 deviceInstance could not be assigned because res[1][0] is undefined :1.54/[object Object] (com.victronenergy.battery.socketcan_vecan0_vi0_uc221293)
@400000006802415730e664fc deviceInstance could not be assigned because res[1][0] is undefined :1.38/[object Object] (com.victronenergy.system)
@4000000068024157312250d4 deviceInstance could not be assigned because res[1][0] is undefined :1.61/[object Object] (com.victronenergy.solarcharger.socketcan_vecan0_vi0_uc214437)
@400000006802415804b085fc deviceInstance could not be assigned because res[1][0] is undefined :1.26/[object Object] (com.victronenergy.packageManager)
@400000006802415a036915c4 18 Apr 14:10:56 - [warn] ------------------------------------------------------
@400000006802415a03e9b38c 18 Apr 14:10:56 - [warn] [node-red-contrib-socketcan/cansend] Error: Module did not self-register: '/data/home/nodered/.node-red/node_modules/socketcan/build/Release/can.node'.
@400000006802415a041088f4 18 Apr 14:10:56 - [warn] [node-red-contrib-socketcan/canreceive] Error: Module did not self-register: '/data/home/nodered/.node-red/node_modules/socketcan/build/Release/can.node'.
@400000006802415a041ffa14 18 Apr 14:10:56 - [warn] ------------------------------------------------------
@400000006802415a048061c4 18 Apr 14:10:56 - [info] Settings file : /usr/lib/node_modules/node-red/venus-settings.js
@400000006802415a04dc608c 18 Apr 14:10:56 - [info] Context store : 'default' [module=memory]
@400000006802415a053e664c 18 Apr 14:10:56 - [info] User directory : /data/home/nodered/.node-red
@400000006802415a05475f2c 18 Apr 14:10:56 - [warn] Projects disabled : editorTheme.projects.enabled=false
@400000006802415a057a1b74 18 Apr 14:10:56 - [info] Flows file : /data/home/nodered/.node-red/flows.json
@400000006802415a0e0c61d4 18 Apr 14:10:56 - [warn]
@400000006802415a0e0c8114
@400000006802415a0e0c84fc ---------------------------------------------------------------------
@400000006802415a0e0c949c Your flow credentials file is encrypted using a system-generated key.
@400000006802415a0e0ca054
@400000006802415a0e0ca054 If the system-generated key is lost for any reason, your credentials
@400000006802415a0e0cac0c file will not be recoverable, you will have to delete it and re-enter
@400000006802415a0e0cb7c4 your credentials.
@400000006802415a0e1026ac
@400000006802415a0e102e7c You should set your own key using the 'credentialSecret' option in
@400000006802415a0e103e1c your settings file. Node-RED will then re-encrypt your credentials
@400000006802415a0e1045ec file using your chosen key the next time you deploy a change.
@400000006802415a0e1051a4 ---------------------------------------------------------------------
@400000006802415a0e105d5c
@400000006802415a0e5814bc 18 Apr 14:10:56 - [warn] Encrypted credentials not found
@400000006802415a28c635a4 18 Apr 14:10:56 - [info] Waiting for missing types to be registered:
@400000006802415a28d938d4 18 Apr 14:10:56 - [info] - socketcan-in
@400000006802415a28e60a14 18 Apr 14:10:56 - [info] - socketcan-out
@400000006802415a2da46ce4 18 Apr 14:10:56 - [info] Server now running at http://127.0.0.1:1880/
Reverting back to the official release (v 3.55) solves the issue, node-red runs agian and the log file looks then as follows:
@40000000680244822b9a8f3c Welcome to Node-RED
@40000000680244822b9a970c ===================
@40000000680244822b9a9af4
@40000000680244822cac3dbc 18 Apr 14:24:24 - [info] Node-RED version: v3.1.10
@40000000680244822d3a1e0c 18 Apr 14:24:24 - [info] Node.js version: v18.20.3
@40000000680244822d869c14 18 Apr 14:24:24 - [info] Linux 5.10.109-venus-17 arm LE
@400000006802448539be6ebc 18 Apr 14:24:27 - [info] Loading palette nodes
@400000006802448f2b201f7c 18 Apr 14:24:37 - [info] Dashboard version 3.6.5 started at /ui
@40000000680244921afdf344 deviceInstance could not be assigned because res[1][0] is undefined :1.61/[object Object] (com.victronenergy.battery.socketcan_vecan0_vi0_uc221293)
@40000000680244921eef0b64 deviceInstance could not be assigned because res[1][0] is undefined :1.32/[object Object] (com.victronenergy.system)
@4000000068024492254db884 deviceInstance could not be assigned because res[1][0] is undefined :1.56/[object Object] (com.victronenergy.solarcharger.socketcan_vecan0_vi0_uc214437)
@40000000680244922e79aabc deviceInstance could not be assigned because res[1][0] is undefined :1.30/[object Object] (com.victronenergy.packageManager)
@40000000680244942d654cbc 18 Apr 14:24:42 - [info] Settings file : /usr/lib/node_modules/node-red/venus-settings.js
@40000000680244942dd45684 18 Apr 14:24:42 - [info] Context store : 'default' [module=memory]
@40000000680244942e3e8234 18 Apr 14:24:42 - [info] User directory : /data/home/nodered/.node-red
@40000000680244942e772a1c 18 Apr 14:24:42 - [warn] Projects disabled : editorTheme.projects.enabled=false
@40000000680244942f05cdbc 18 Apr 14:24:42 - [info] Flows file : /data/home/nodered/.node-red/flows.json
@400000006802449436dd094c 18 Apr 14:24:42 - [warn]
@400000006802449436dd305c
@400000006802449436dd3444 ---------------------------------------------------------------------
@400000006802449436dd3ffc Your flow credentials file is encrypted using a system-generated key.
@400000006802449436dd4bb4
@400000006802449436dd4f9c If the system-generated key is lost for any reason, your credentials
@400000006802449436dd5b54 file will not be recoverable, you will have to delete it and re-enter
@400000006802449436dd6324 your credentials.
@400000006802449436df8604
@400000006802449436df8dd4 You should set your own key using the 'credentialSecret' option in
@400000006802449436df998c your settings file. Node-RED will then re-encrypt your credentials
@400000006802449436dfa544 file using your chosen key the next time you deploy a change.
@400000006802449436dfb0fc ---------------------------------------------------------------------
@400000006802449436dfbcb4
@40000000680244943719c42c 18 Apr 14:24:42 - [warn] Encrypted credentials not found
@400000006802449520836704 18 Apr 14:24:43 - [info] Server now running at http://127.0.0.1:1880/
@400000006802449521cc65ac 18 Apr 14:24:43 - [info] Starting flows
@40000000680244971a2fa2dc 18 Apr 14:24:45 - [info] Started flows
The expected behaviour would be, that on the Beta Version v3.60~60 Node-red is running with node-red-contrib-socketcan 1.2.15 https://flows.nodered.org/node/node-red-contrib-socketcan installed, as it is under the official Release v3.55
To reproduce in Node-Red under Manage palette ( Key shortcut Ctrl/⌘-Shift-p) search for node-red-contrib-socketcan (Version 1.2.15) and install.
Getting acces again to the CAN-Bus is quite important to me, would be great if somebody of the victron team could look into this.
Keep the good work up!
and let me know if you need any further information!
Sorry about my posting in the wrong topic. Can this be moved to become an individual topic by the administrators?
the link to the other thread is from me too, as I was not sure if the modification thread is the right place.
I am also not sure, if there is a general issue with access to the CAN-bus fron Node-red as even in the official release it throws these lines in the log file:
@40000000680244921afdf344 deviceInstance could not be assigned because res[1][0] is undefined :1.61/[object Object] (com.victronenergy.battery.socketcan_vecan0_vi0_uc221293)
@40000000680244921eef0b64 deviceInstance could not be assigned because res[1][0] is undefined :1.32/[object Object] (com.victronenergy.system)
@4000000068024492254db884 deviceInstance could not be assigned because res[1][0] is undefined :1.56/[object Object] (com.victronenergy.solarcharger.socketcan_vecan0_vi0_uc214437)
@40000000680244922e79aabc deviceInstance could not be assigned because res[1][0] is undefined :1.30/[object Object] (com.victronenergy.packageManager)
My bad, I remembered the keyword “socketcan” but completely missed that you are already the author of that topic
A community manager will probably soon merge these topics.
I’m not sure what Victron’s plans are for the socketcan nodes or if there are alternatives.
And can’t look into it now but also wouldn’t know why that node-red-..-socketcan node wouldn’t work anymore.
I quickly tried installing it, and then found this error somewhere in a debug pane:
npm warn config production Use `--omit=dev` instead.
npm warn deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm warn deprecated are-we-there-yet@2.0.0: This package is no longer supported.
npm warn deprecated npmlog@5.0.1: This package is no longer supported.
npm warn deprecated gauge@3.0.2: This package is no longer supported.
npm error code 1
npm error path /data/home/nodered/.node-red/node_modules/socketcan
npm error command failed
npm error command sh -c node-gyp rebuild
npm error gyp info it worked if it ends with ok
npm error gyp info using node-gyp@11.2.0
npm error gyp info using node@20.18.2 | linux | arm
npm error gyp info find...
I’m not very familiar with node-red, so for now here my involvement stops I’m afraid.
One thing that was changed in Venus OS between v3.60~15 and v3.60~53 is that we’ve updated open embedded; this might have something to do with it.
seems like some dependencies went sideways.
this is far beyond my linux knowledge.
Although I can not determine if this is an issue with venusOS or SocketCAN I opened up an issue on the github page of SocketCAN, to get at least the developer know that there might be an issue we could need his help.
This is the link to it: https://github.com/grodansparadis/node-red-contrib-socketcan/issues/44
I uninstalled and installed the socketCAN node from the command-line, because using the palettmanager is too complicated, because i think you first have to delete all socketCAN nodes in your flows. Anyway these are the commands I used (if it helps someone)
while installing the node again on the command line these messages showed up:
root@ekrano:/data/home/nodered/.node-red# npm install node-red-contrib-socketcan
npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm warn deprecated are-we-there-yet@2.0.0: This package is no longer supported.
npm warn deprecated npmlog@5.0.1: This package is no longer supported.
npm warn deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm warn deprecated gauge@3.0.2: This package is no longer supported.
added 184 packages, and audited 295 packages in 3m
68 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
Seems like it’s still complaining about some deprecated modules, but after all it’s running again!
Keep us updated, if you add python3-compile to one of the upcomming beta-releases.
Just a short update.
At time of writing v3.60~66 is the latest Beta Version. I was able to upgrade from v3.60~60 to v3.60~66 with socket-can “surviving” the upgrade.
As I did a direct upgrade from v3.60~60 to v3.60~66 and not first revert to v3.55 (latest stable Version at time of writing) I assume the commands given by Matthijs Vader in Post 9 above have not been reverted during this upgrade. I don’t know what happens if someone tries to directly upgrade from v3.55 to v3.60~66 if the commands from Post Nr. 9 still need to be executed for socketcan to keep running.
If further tests or posts of log-files are needed, let me know.