Problem with http node request

Hi, I try to explain and I understand that isn't easy but I would like to find a solution.
I had already written two post, but the problem is always present...

I have a reolink cam and every 30 min I send with http node one (only one) http request (GET) to have a shot of the garden to show on my dashboard.

Sometimes maybe for bad wifi connection the cam don't show the image .....
and in this case I haven't error and no problem in node-red but the cpu work increased from 4% to 27% with a notable increase of the cpu temperature and this value don't decrease not even when the cam show the image correctly and I'm forced to restart node red.

To isolate the issue I disconnected the node to the other function

and now I have only one function node with a simple menage error ....

errfunc

I have disconnected the cam from the electricity grid to to simulate a problem with the cam and this is what happens ...

err2

err

and the value of cpu temp and cpu work change from

rasp1

to

rasp2

and this is a problem because the temp value continues to increase and I'm forced to restart node-red.

I think the problem is the http node and I would like your help to fix the issue.


Node-RED version: v3.1.8
Node.js version: v18.20.0
Linux 5.15.32-v7l+ arm LE
Raspberry Pi4 - SO raspberry

It doesn't solve the problem, but have you tryed using the exec node and pulling the image with curl?

No, I only know this method ....
Do you have any links to understand how to do it?

If you disconnect the input to the http node and disconnect the power to the cam does the CPU still go up?

If it doesn't show the problem with the input disconnected, then connect it up again and stop and start node red using
node-red-stop
node-red-start
then make it show the problem, and copy/paste the full output from node-red-start here. Copy/paste please, not screenshot.

Also run the command top and screenshot that (while it is showing the problem) and paste it here.

here a 2 exec node, one return a buffer, the other a base64 encoded image.

curl return binary data if you point it to an image:

 curl https://nodered.org/images/platform-device.png

you can pipe the output to base64 to get .. a base64 encoded image

 curl https://nodered.org/images/platform-device.png | base64
[{"id":"05c0f83ad1c50b1e","type":"inject","z":"527fe7341bb5fe46","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":180,"y":120,"wires":[["fbc161d6ee269137"]]},{"id":"b6b80c2d7f35ad47","type":"debug","z":"527fe7341bb5fe46","name":"debug 22","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":600,"y":120,"wires":[]},{"id":"fbc161d6ee269137","type":"exec","z":"527fe7341bb5fe46","command":" curl https://nodered.org/images/platform-device.png","addpay":"","append":"","useSpawn":"false","timer":"","winHide":false,"oldrc":false,"name":"buffer","x":370,"y":120,"wires":[["b6b80c2d7f35ad47"],[],[]]},{"id":"fe74e44eed32fd0c","type":"exec","z":"527fe7341bb5fe46","command":" curl https://nodered.org/images/platform-device.png | base64","addpay":"","append":"","useSpawn":"false","timer":"","winHide":false,"oldrc":false,"name":"base64","x":380,"y":180,"wires":[[],[],[]]}]
1 Like

Thank you ....