Joe-ab1do/mcp-pcf-aio install problem

hi, I’m trying to upgrade my hardware from pi3b to pi4, I can’t install it, every time I try the web interface disconnects and you can’t reach it anymore. I’m using the 64bit OS, previously I used on 32bit and it worked well, can this be the problem?

Uninstalling (from terminal) back online

Does that mean the problem is resolved?

Thank you for your prompt response.
no no I have solved ... if I try to reinstall I still have the same problem.

Try to install what exactly? Show us the log from trying to install whatever it is.

@joe-ab1do/mcp-pcf-aio

Node-Red nodes for i2c port expanders MCP23008, MCP23017, PCF8574(A) & PCF8575

this is the nodoche I try to install

2025-01-07T16:06:00.642Z Install : @joe-ab1do/mcp-pcf-aio 3.3.1

2025-01-07T16:06:00.736Z npm install --no-audit --no-update-notifier --no-fund --save --save-prefix=~ --omit=dev --engine-strict @joe-ab1do/mcp-pcf-aio@3.3.1

2025-01-07T16:06:08.057Z [out]

2025-01-07T16:06:08.057Z [out] added 2 packages in 7s

2025-01-07T16:06:08.095Z rc=0

This is the log

soon after it disconnects and is no longer reachable, only a deinstallation of the node restores access to the web page.

npm uninstall @joe-ab1do/mcp-pcf-aio

from ssh

Trying various things... strangely if I install the knot first:

npm install ncd-red-mcp23017

It no longer locks up when installing:

@joe-ab1do/mcp-pcf-aio

and it seems to work...

What can it be?

in the list of installed nodes is present (after various tests) the node:

ncd-red-comm

who was not present before.

From the various posts here it seems you are installing @joe-ab1do/mcp-pcf-aio in a terminal using ssh. Is this correct? Is there a reason you don't use node-red's palette manager to install? Can you connect in a browser to your node-red installation on your Pi?

The log you showed looks correct. Just to be clear, there is no link/dependency/etc between ncd-red-mcp23017 and @joe-ab1do/mcp-pcf-aio, so I don't understand what is going on there. However they might interfere.

At this stage I would start anew: uninstall ncd-red-mcp23017 and uninstall @joe-ab1do/mcp-pcf-aio and remove all flows. Then Depoly. Then install @joe-ab1do/mcp-pcf-aio, preferably using the palette manager.

BTW, if you have a flow that is using one or more @joe-ab1do/mcp-pcf-aio nodes and you do not have that node installed, you will have to remove that flow first, deploy and then install @joe-ab1do/mcp-pcf-aio.

Thank you for your kind response.

I already tried to do everything you have listed without any positive results.
I tried snche with clean installation but it does not change anything.
As soon as you install the node
@joe-ab1do/mcp-pcf-aio
Regardless if you are blocking the web interface from palettes or ssh, it will restart only by installing
ncd-red-mcp23017
or remove the first node
I did 1000 tests but the only way to make the system work is to keep them both...
I would like to provide further information to illuminate the way but have no idea what to go see

Not quite sure I understand all this.

  • What will restart?
  • Which is the "first node"?

@joe-ab1do/mcp-pcf-aio
It’s the knot I need

ncd-red-mcp23017
is the node that I am forced to install to make work what I need, or the one above.

To get a better idea of what is happening stop node red then start it again in a command window. Then you will see the node red log which may give a clue.

You shouldn't need ncd-red-mcp23017.

  • Let's start from some basics: I assume you are using a mcp23017? If not, what?

  • You have the hardware connected correctly, e.g. i2c-1, address 0x20 and the address pins on the chip are connected correctly?

  • Assuming you are using i2c bus 1, in a terminal enter i2cdetect -y 1. Do you see the address listed for your chip (e.g. if your chip has address 0x20 you should see 20 in the output). Please copy the result in your reply.

  • Uninstall ncd-red-mcp23017 and deploy.

  • In your palette menu on the left of your screen you should see two @joe-ab1do/mcp-pcf-aio nodes: an input-node and an output-node:

  • Delete all flows you have using these nodes and deploy

  • In a clean flow/tab, drag the mcp pcf out node onto the design area. Double click on it to open the edit screen. In the drop-down box to the right of chip click on Add new mcp pcf chip... and then click on the pencil icon to open a second menu where you identify the physical chip by entering the various items. Click Add when you are done. Then select the pin number this node will be attached to. Click Done when complete. Deploy.

  • On the right of your screen, click on the gear icon to see the physical chips you have created:


    As you can see I have 5 physical chips in use. These configuration nodes show the chip type and its i2c bus:address.

Good morning and thank you for your feedback.
As already indicated in my previous messages all tests were carried out without success.
The situation in brief:
hardware: rpi4 4 gb + expansion already in use previously successfully on rpi3b (this is a hardware upgrade)

configuration: 40 pin rpi connector + 2 mcp23017 with addresses 20 and 27 (expansion board already in use) used as 16 in and 16 out

Operating system: raspiOSLite 64bit (updated and clean) with rpi i2c interface enabled

node-red version: 4.0.8 version "PI"

description of the problem encountered:
with a fully piped system we proceed through palettes to install the node @joe-ab1do/mcp-pcf-aio
As soon as its installation is finished the web interface will crash and it will be no longer reachable.

Tests carried out without the
-reboot: does not start
-New reintallation: does not resolve
-Uninstall the node via ssh (the web interface does not work): restore the functionality of the web interface
-Retry installation: same result
-installation from terminal "npm i @joe-ab1do/mcp-pcf-aio": does not resolve
-installation from terminal "pm install i2c-bus " + " npm i @joe-ab1do/mcp-pcf-aio: does not resolve

Tests carried out with improving
-with clean system if you install the node "ncd-red-mcp23017" before the next installation of the node "@joe-ab1do/mcp-pcf-aio" is successful.
-if you try to remove "ncd-red-mcp23017" the problem returns (web interface not reachable), re-installing it will work again.
-after the installation of "ncd-red-mcp23017" I noticed that is added node "ncd-red-comm", with clean installation I tried to install it before the mode "@joe-ab1do/mcp-pcf-aio" but nothing changes, if you do not hold the node "ncd-red-mcp23017" You cannot install "@joe-ab1do/mcp-pcf-aio" without having the web interface lock.

  • With the installation of the node "@joe-ab1do/mcp-pcf-aio" no errors are reported by both web and ssh.

Thank you for your interest

In one of the 'does not start' situations, what do you see if you try to stop and start node red using
node-red-stop
node-red-start

Welcome to Node-RED
===================
8 Jan 13:52:02 - [info] Node-RED version: v4.0.8
8 Jan 13:52:02 - [info] Node.js  version: v20.18.1
8 Jan 13:52:02 - [info] Linux 6.6.51+rpt-rpi-v8 arm LE
8 Jan 13:52:03 - [info] Loading palette nodes
8 Jan 13:52:07 - [red] Uncaught Exception:
8 Jan 13:52:07 - [error] TypeError: Cannot read properties of null (reading 'toString')
    at /home/pin32/.node-red/node_modules/@joe-ab1do/mcp-pcf-aio/mcp-pcf-aio.js:957:40
    at new Promise (<anonymous>)
    at module.exports (/home/pin32/.node-red/node_modules/@joe-ab1do/mcp-pcf-aio/mcp-pcf-aio.js:952:24)
    at loadNodeSet (/usr/lib/node_modules/node-red/node_modules/@node-red/registry/lib/loader.js:359:27)
    at /usr/lib/node_modules/node-red/node_modules/@node-red/registry/lib/loader.js:453:31
    at Array.forEach (<anonymous>)
    at loadNodeSetList (/usr/lib/node_modules/node-red/node_modules/@node-red/registry/lib/loader.js:448:11)
    at /usr/lib/node_modules/node-red/node_modules/@node-red/registry/lib/loader.js:145:16
nodered.service: Main process exited, code=exited, status=1/FAILURE
nodered.service: Failed with result 'exit-code'.
nodered.service: Consumed 8.868s CPU time.

this with node "ncd-red-mcp23017" uninstalled

Start Node-RED
 
Once Node-RED has started, point a browser at http://192.168.1.97:1880
On Pi Node-RED works better with the Firefox or Chrome browser
 
Use   node-red-stop                          to stop Node-RED
Use   node-red-start                         to start Node-RED again
Use   node-red-log                           to view the recent log output
Use   sudo systemctl enable nodered.service  to autostart Node-RED at every boot
Use   sudo systemctl disable nodered.service to disable autostart on boot
 
To find more nodes and example flows - go to http://flows.nodered.org
 
Starting as a systemd service.
8 Jan 14:09:15 - [info] Stopping flows
Error: Port is not open
    at SerialPort.close (/home/pin32/.node-red/node_modules/node-red-contrib-victron-vedirect-usb/node_modules/@serialport/stream/dist/index.js:229:37)
    at VEDirectUSB.<anonymous> (/home/pin32/.node-red/node_modules/node-red-contrib-victron-vedirect-usb/src/nodes/vedirect-usb.js:42:25)
    at Node.close (/usr/lib/node_modules/node-red/node_modules/@node-red/runtime/lib/nodes/Node.js:345:26)
    at stopNode (/usr/lib/node_modules/node-red/node_modules/@node-red/runtime/lib/flows/Flow.js:749:31)
    at Flow.stop (/usr/lib/node_modules/node-red/node_modules/@node-red/runtime/lib/flows/Flow.js:388:35)
    at /usr/lib/node_modules/node-red/node_modules/@node-red/runtime/lib/flows/index.js:481:43
    at Array.forEach (<anonymous>)
    at stop (/usr/lib/node_modules/node-red/node_modules/@node-red/runtime/lib/flows/index.js:477:19)
    at /usr/lib/node_modules/node-red/node_modules/@node-red/runtime/lib/flows/index.js:220:20
8 Jan 14:09:15 - [info] [mqtt-broker:e276a877253691df] Disconnected from broker: mqtt://192.168.1.99:1883
8 Jan 14:09:15 - [info] Stopped flows
8 Jan 14:09:15 - [info] Updated flows
8 Jan 14:09:15 - [info] Starting flows
  MCP23017 chip initialization OK. BusNumber=1 Address=0X27  id:ac05a4c7c52289c4  startAllHigh = false
  MCP23017 chip initialization OK. BusNumber=1 Address=0X20  id:891324a310fe6192  startAllHigh = false
8 Jan 14:09:17 - [info] Started flows
[Error: Error: No such file or directory, cannot open /dev/ttyUSB0]
8 Jan 14:09:17 - [info] [mqtt-broker:e276a877253691df] Connected to broker: mqtt://192.168.1.99:1883

This with "ncd-red-mcp23017" node installed

I tried with 32 bit OS and it doesn’t change much.
the previous test was performed on 32bit

pin32@Node-Red:~ $ node-red-log

 
  MCP23017 chip initialization OK. BusNumber=1 Address=0X27  id:ac05a4c7c52289c4  startAllHigh = false
  MCP23017 chip initialization OK. BusNumber=1 Address=0X20  id:891324a310fe6192  startAllHigh = false
8 Jan 14:01:13 - [info] Started flows
[Error: Error: No such file or directory, cannot open /dev/ttyUSB0]
8 Jan 14:01:14 - [info] [mqtt-broker:e276a877253691df] Connected to broker: mqtt://192.168.1.99:1883
8 Jan 14:09:15 - [info] Stopping flows
Error: Port is not open
    at SerialPort.close (/home/pin32/.node-red/node_modules/node-red-contrib-victron-vedirect-usb/node_modules/@serialport/stream/dist/index.js:229:37)
    at VEDirectUSB.<anonymous> (/home/pin32/.node-red/node_modules/node-red-contrib-victron-vedirect-usb/src/nodes/vedirect-usb.js:42:25)
    at Node.close (/usr/lib/node_modules/node-red/node_modules/@node-red/runtime/lib/nodes/Node.js:345:26)
    at stopNode (/usr/lib/node_modules/node-red/node_modules/@node-red/runtime/lib/flows/Flow.js:749:31)
    at Flow.stop (/usr/lib/node_modules/node-red/node_modules/@node-red/runtime/lib/flows/Flow.js:388:35)
    at /usr/lib/node_modules/node-red/node_modules/@node-red/runtime/lib/flows/index.js:481:43
    at Array.forEach (<anonymous>)
    at stop (/usr/lib/node_modules/node-red/node_modules/@node-red/runtime/lib/flows/index.js:477:19)
    at /usr/lib/node_modules/node-red/node_modules/@node-red/runtime/lib/flows/index.js:220:20
8 Jan 14:09:15 - [info] [mqtt-broker:e276a877253691df] Disconnected from broker: mqtt://192.168.1.99:1883
8 Jan 14:09:15 - [info] Stopped flows
8 Jan 14:09:15 - [info] Updated flows
8 Jan 14:09:15 - [info] Starting flows
  MCP23017 chip initialization OK. BusNumber=1 Address=0X27  id:ac05a4c7c52289c4  startAllHigh = false
  MCP23017 chip initialization OK. BusNumber=1 Address=0X20  id:891324a310fe6192  startAllHigh = false
8 Jan 14:09:17 - [info] Started flows
[Error: Error: No such file or directory, cannot open /dev/ttyUSB0]
8 Jan 14:09:17 - [info] [mqtt-broker:e276a877253691df] Connected to broker: mqtt://192.168.1.99:1883

usb0 non connect

8 Jan 13:52:07 - [error] TypeError: Cannot read properties of null (reading 'toString')
    at /home/pin32/.node-red/node_modules/@joe-ab1do/mcp-pcf-aio/mcp-pcf-aio.js:957:40

This function is performing i2cdetect -l and looks like it is resulting in null, which in turn results in the 'toString' error. Could you, without installing ncd-red-mcp23017, in a terminal run i2cdetect -l and show the result.

What mcp23017 board are you using (please paste the link).