Hi there !
I'been working with Node-Red some time now and I've created a nice and full of widgets dashboard that fulfill my application's requirements.
The current issue is that on each of the four tabs suddenly appeared a lot of 10 x 1 spacers.
Before the that I used some 10 x 1 spacer but a few of them.
I believe but not sure that that is the reason the dashboard is unresponsive.
What happens when I'm trying to delete one of them editing it and click on delete button
it take for ever , I mean the whole dashboard freeze.
Before going on with this code I would like to know if what I'm intending to do with node -red is
viable.
My project is to control N machine for one customer.
I am planning to use one tab per machine. Every tab should show data info from an independent
hardware platform.
I have not extensive experience with node red and I'm wandering if that is achievable to implement.
Additional question:
How is measure the dashboard's tab capacity or which is maximum widget's number on one tab?
Are you using charts?
If yes, how many, what timescale range does each cover, how many lines, and what rate are samples added for each line?
What hardware are you running node red on?
What hardware are you running the browser on?
That is a lot of questions, please try and answer them all.
just one line each.
I'm using so far 5 single line charts and three single line for trends.
The the variables which are 7 are updated every 40 sec and the same update is for the charts.
Charts are using 12 hours time scale with single line and so far 3 single line charts for trends with 12 day scale time coming from sqlite db.
What hardware are you running node red on?
[/quote]
I'm running Node-red locally on a laptop with Win 10 with i-5 Intel processor and 64 bit OS.
@NODE777 you didn't answer the most juicy and relevant questions...
Colin is trying to ascertain whether you have too much going on.
For example, it you are trying to display 50 charts, it's gonna get slow. Or if for example you are trying to display 20000 points it's gonna get slow. Or if your data is getting passed to the graph every millisecond, it's likely gonna struggle.
For the 12 hour charts, you have samples every 40 seconds for 12 hours that is 1080 samples on a chart, which the browser has to shuffle down each time there is a new sample. If the five charts are on the same tab then that is 5,000 samples to shuffle down, though I would not have thought an i5 would have great difficulty with that. I am not sure what the situation is if they are not on the same tab.
However, for the 12 day charts, unless you are downsampling the data, that is 24,000 samples for each line, so a total of 72,000 samples, which is pretty heavy duty.
To confirm whether the charts are the problem then disable those flows and see if it is ok. If it is them then the solution is to downsample the data to reduce the number of points on the charts. There is no point drawing 24000 points on a chart which is presumably only hundreds of pixels across.
Can you restart node-red in a terminal and post the log here please (as text please not a screenshot). Make it fail before copying the log in case it shows anything there.
@NODE777 it may not be enough to simply disable the charts.
Perhaps the data is still being processed / passed around?
difficult to tell without seing your flow or info like: how much data you have, how much processing your doing? how fast the messages are arriving? Is the CPU of the device overloaded? Is it a PI? are you running the browser on the same machine node-red is installed?
Well, all data comes from SSE (Server-Sent-Event-Particle Photon).
Each variable comes from those nodes
There is no PI, there is a Particle photon who send data to Particle Cloud.
The server running on a laptop (as I mentioned to answer Colin's questions), is retrieve data through the SSE nodes .
The the nodes related to sqlite db inset data in the db every 15 minutes and only are retrieved when it is demanded , so there is not continuous data flows toward the charts.
Please see attached log from the server running on a laptop.
IMicrosoft Windows [Version 10.0.18362.836]
(c) 2019 Microsoft Corporation. All rights reserved.
C:\Users\amvel>node-red
6 Jun 18:46:20 - [info]
Welcome to Node-RED
===================
6 Jun 18:46:20 - [info] Node-RED version: v1.0.6
6 Jun 18:46:20 - [info] Node.js version: v13.11.0
6 Jun 18:46:20 - [info] Windows_NT 10.0.18362 x64 LE
6 Jun 18:46:21 - [info] Loading palette nodes
6 Jun 18:46:22 - [info] Dashboard version 2.19.4 started at /ui
6 Jun 18:46:23 - [info] Settings file : \Users\amvel\.node-red\settings.js
6 Jun 18:46:23 - [info] Context store : 'default' [module=memory]
6 Jun 18:46:23 - [info] User directory : \Users\amvel\.node-red
6 Jun 18:46:23 - [warn] Projects disabled : editorTheme.projects.enabled=false
6 Jun 18:46:23 - [info] Flows file : \Users\amvel\.node-red\flows_LAPTOP-UJ9TTBO3.json
6 Jun 18:46:23 - [info] Server now running at http://127.0.0.1:1880/
6 Jun 18:46:23 - [warn]
---------------------------------------------------------------------
Your flow credentials file is encrypted using a system-generated key.
If the system-generated key is lost for any reason, your credentials
file will not be recoverable, you will have to delete it and re-enter
your credentials.
You should set your own key using the 'credentialSecret' option in
your settings file. Node-RED will then re-encrypt your credentials
file using your chosen key the next time you deploy a change.
---------------------------------------------------------------------
6 Jun 18:46:23 - [info] Starting flows
TypeError: Cannot read property 'id' of null
at C:\Users\amvel\node_modules\node-red-dashboard\ui.js:466:69
at find (C:\Users\amvel\node_modules\node-red-dashboard\ui.js:428:13)
at addControl (C:\Users\amvel\node_modules\node-red-dashboard\ui.js:466:24)
at Object.add (C:\Users\amvel\node_modules\node-red-dashboard\ui.js:144:18)
at addWidget (C:\Users\amvel\node_modules\node-red-dashboard\index.js:118:15)
at Object.addWidget (C:\Users\amvel\node_modules\node-red-dashboard\index.js:136:48)
at new TableNode (C:\Users\amvel\node_modules\node-red-node-ui-table\node.js:57:27)
at Object.createNode (C:\Users\amvel\AppData\Roaming\npm\node_modules\node-red\node_modules\@node-red\runtime\lib\nodes\flows\util.js:483:31)
at Flow.start (C:\Users\amvel\AppData\Roaming\npm\node_modules\node-red\node_modules\@node-red\runtime\lib\nodes\flows\Flow.js:193:48)
at start (C:\Users\amvel\AppData\Roaming\npm\node_modules\node-red\node_modules\@node-red\runtime\lib\nodes\flows\index.js:345:33)
TypeError: Cannot read property 'config' of null
at addWidget (C:\Users\amvel\node_modules\node-red-dashboard\index.js:72:39)
at Object.addWidget (C:\Users\amvel\node_modules\node-red-dashboard\index.js:136:48)
at new TableNode (C:\Users\amvel\node_modules\node-red-node-ui-table\node.js:57:27)
at Object.createNode (C:\Users\amvel\AppData\Roaming\npm\node_modules\node-red\node_modules\@node-red\runtime\lib\nodes\flows\util.js:483:31)
at Flow.start (C:\Users\amvel\AppData\Roaming\npm\node_modules\node-red\node_modules\@node-red\runtime\lib\nodes\flows\Flow.js:193:48)
at start (C:\Users\amvel\AppData\Roaming\npm\node_modules\node-red\node_modules\@node-red\runtime\lib\nodes\flows\index.js:345:33)
at tryCatchReject (C:\Users\amvel\AppData\Roaming\npm\node_modules\node-red\node_modules\when\lib\makePromise.js:845:30)
at runContinuation1 (C:\Users\amvel\AppData\Roaming\npm\node_modules\node-red\node_modules\when\lib\makePromise.js:804:4)
at Fulfilled.when (C:\Users\amvel\AppData\Roaming\npm\node_modules\node-red\node_modules\when\lib\makePromise.js:592:4)
at Pending.run (C:\Users\amvel\AppData\Roaming\npm\node_modules\node-red\node_modules\when\lib\makePromise.js:483:13)
TypeError: Cannot read property 'config' of null
at addWidget (C:\Users\amvel\node_modules\node-red-dashboard\index.js:72:39)
at Object.addWidget (C:\Users\amvel\node_modules\node-red-dashboard\index.js:136:48)
at new TableNode (C:\Users\amvel\node_modules\node-red-node-ui-table\node.js:57:27)
at Object.createNode (C:\Users\amvel\AppData\Roaming\npm\node_modules\node-red\node_modules\@node-red\runtime\lib\nodes\flows\util.js:483:31)
at Flow.start (C:\Users\amvel\AppData\Roaming\npm\node_modules\node-red\node_modules\@node-red\runtime\lib\nodes\flows\Flow.js:193:48)
at start (C:\Users\amvel\AppData\Roaming\npm\node_modules\node-red\node_modules\@node-red\runtime\lib\nodes\flows\index.js:345:33)
at tryCatchReject (C:\Users\amvel\AppData\Roaming\npm\node_modules\node-red\node_modules\when\lib\makePromise.js:845:30)
at runContinuation1 (C:\Users\amvel\AppData\Roaming\npm\node_modules\node-red\node_modules\when\lib\makePromise.js:804:4)
at Fulfilled.when (C:\Users\amvel\AppData\Roaming\npm\node_modules\node-red\node_modules\when\lib\makePromise.js:592:4)
at Pending.run (C:\Users\amvel\AppData\Roaming\npm\node_modules\node-red\node_modules\when\lib\makePromise.js:483:13)
6 Jun 18:46:23 - [info] Started flows
6 Jun 18:46:23 - [info] [sqlitedb:3c477b64.eccd44] opened C:\Users\amvel\hvac4.db ok
6 Jun 18:46:23 - [info] [sqlitedb:dae2d208.74905] opened C:\Users\amvel\hvac4.db ok
6 Jun 18:49:02 - [info] Stopping flows
6 Jun 18:49:02 - [info] Stopped flows
6 Jun 18:49:02 - [info] Starting flows
6 Jun 18:49:02 - [info] Started flows
If you want it, I can send a typical flow pattern which is used f to retrieve some variables and other flow pattern to retrieve data from the data base.