Droplist won't update since new 2.1.0 release

Hi,
I have Something bizarre since the new 2.1.0 version. On each tab, I use a control_ui to get the active tab to avoid having any unrequired transactions (query DB).
It was working nice and since the last update, I have this behaviour:

  1. The required query is done on the DB
  2. I have my Object array in my msg. options as usual
  3. The droplist won't populate anymore

If instead, I don't use the ui_control and use an inject node (automatic after 0.1 second ) it works well.

I am wondering if anyone notice anything like this ?

Best
Yves

Using, for example, debug nodes, work out exactly what in the flows is not doing what it should.

Hi Colin,

I do used the debug node for both UI_control
image
and for my droplist
image

and for the droplist

image

very strange - as I was writing, works well before the update..

Thanks
Yves

Make sure you have updated to v2.1.3

Thanks for the reply,

I will do the updates,

Here what happened ;

I rollback to 2.5 (My backup done previous updating) after 2.1 installation, when I get the problems.

I am still on 2.5 and the problem came back once I updated the Dashboard nodes.

I will install 2.1 and then, do I have to install the sp 2.1.2 and then 2.1.3 or, once 2.1 is reinstalled, I can simply install 2.1.3 over it and skip 2.1.2 ?

I imagine I unzip and copy over the files into the proper folder ?

best

Yves

2.5 of what?

No, what OS are you on and how did you install node-red initially and how did you upgrade to 2.1.0?

Sorry, I mean 2.05
Node-red is running under PI
NodeJ : v12.22.6
Linux: Linux 5.10.63-v7l+ #1457 SMP Tue Sep 28 11:26:14 BST 2021 armv7l GNU/Linux

I did the update to Node-Red 2.1.3 and still the same beaviours.

I will update my Nodej version to the newest supported by my OS and my linux as well.

Keep you posted

Yves

Hi @ylechasseur

The Dashboard set of nodes are independent of the core. Upgrading the core node-red to 2.1.x should not have any effect on the dashboard behaviour.

Likewise, upgrading node.js and linux, whilst always good to keep current, are not going to play any part in figuring out what is happening here.

What version of Node-RED Dashboard have you got installed?

Hi Nick,

Thanks for your reply, it is very appreciated.

All the droplist won't populate but all the other fields (Textbox or label) are populated by the Mysql Query result. I have several tabs with mix of Droplist othe field types and they all have the same behaviors.
The switch node validate the Tab name and it is working well.

  • Queries are done
  • the droplist won't populate.

On the same tab, if instead I use Inject,

  • Queries are done
  • the droplist are populated.

Thanks a lot and thanks so mutch for this wonderful product

image

Node-Red : 2.1.3
nodeJ: node-v16.13.0
Rasp Pi : has been updated as well

On the console logs, I get this error message when I open a TAB who should to a request on My SQL

1 Nov 16:50:14 - [warn] [http response:http out dash] No response object

Here is an exemple the code

[{"id":"a7829e8b94ca047e","type":"subflow","name":"Query - Dynamic","info":"","category":"","in":[{"x":65,"y":75,"wires":[{"id":"350789b45ba53fb3"}]}],"out":[{"x":560,"y":75,"wires":[{"id":"1331a762b80ebe09","port":0}]}],"env":[],"meta":{},"color":"#DDAA99"},{"id":"1331a762b80ebe09","type":"mysql","z":"a7829e8b94ca047e","mydb":"a9587441.1a7a98","name":"DB - Bmind","x":430,"y":75,"wires":[[]]},{"id":"350789b45ba53fb3","type":"function","z":"a7829e8b94ca047e","name":"prepareQuerysc","func":"var query=msg.sql;\nmsg.topic = query;\nreturn msg;\n\n\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":230,"y":75,"wires":[["1331a762b80ebe09"]]},{"id":"a9587441.1a7a98","type":"MySQLdatabase","name":"DB - Bmind","host":"192.168.0.254","port":"3306","db":"Raysub1","tz":"","charset":""},{"id":"d2b3f29cabb012cb","type":"ui_ui_control","z":"20638da65a4e7b54","name":"","events":"all","x":105,"y":135,"wires":[["05c833f73d466912"]]},{"id":"05c833f73d466912","type":"switch","z":"20638da65a4e7b54","name":"","property":"name","propertyType":"msg","rules":[{"t":"eq","v":"Inventory-Add","vt":"str"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":95,"y":180,"wires":[["07f99f3172d5edef","bf07927bcae33e6f"],[]]},{"id":"bf07927bcae33e6f","type":"link out","z":"20638da65a4e7b54","name":"","links":["6c231bb996139c64","dca4c8df7dc25830"],"x":255,"y":135,"wires":[]},{"id":"dca4c8df7dc25830","type":"link in","z":"20638da65a4e7b54","name":"selection_in","links":["bf07927bcae33e6f"],"x":360,"y":240,"wires":[["bb3e23d67b251664"]]},{"id":"bb3e23d67b251664","type":"change","z":"20638da65a4e7b54","name":"Set Query","rules":[{"t":"set","p":"sql","pt":"msg","to":"SELECT * FROM Parts_Category;","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":495,"y":240,"wires":[["560c968aa12f489e"]]},{"id":"560c968aa12f489e","type":"subflow:a7829e8b94ca047e","z":"20638da65a4e7b54","name":"","env":[],"x":690,"y":240,"wires":[["5803d21104f84ce3"]]},{"id":"5803d21104f84ce3","type":"function","z":"20638da65a4e7b54","name":"format array of objects for dropdown ","func":"//Reformat array to work with dashboard\nvar reformattedArray = msg.payload.map(obj =>{\n    //declare the reformatted object\n    var rObj = {};\n    //format it for drop down\n    //\"label\":\"value\" is the format so lets move the value to the label and add some txt as well\n    //you can also replce the txt with a var if you want\n    rObj[obj.name] = obj.idCategory;\n    return rObj;\n});\nmsg.payload =  reformattedArray;\nreturn msg;\n\n//Reformat array to work with dashboard\n/*var reformattedArray = msg.payload.map(obj =>{\nvar rObj = {};\nrObj[obj.boatname+\" \"+obj.temp.toFixed(1)+\"°C\"+' | '+(((obj.temp*9)/5)+32).toFixed(1)+\"°F\"] = obj.idboat;\nreturn rObj;\n});*/\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":990,"y":240,"wires":[["2928df797d4babb6"]]},{"id":"2928df797d4babb6","type":"change","z":"20638da65a4e7b54","name":"","rules":[{"t":"set","p":"options","pt":"msg","to":"payload","tot":"msg"},{"t":"set","p":"topic","pt":"msg","to":"Part Category","tot":"str"},{"t":"set","p":"records","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1295,"y":240,"wires":[["33d76b4e1856fd0e"]]},{"id":"33d76b4e1856fd0e","type":"ui_dropdown","z":"20638da65a4e7b54","name":"DL_Part_Cat","label":"{{msg.topic}}","tooltip":"","place":"","group":"9a0a523fe3e4c330","order":1,"width":6,"height":1,"passthru":true,"multiple":false,"options":[{"label":"","value":"","type":"str"}],"payload":"","topic":"SelectDone","topicType":"msg","className":"","x":1525,"y":240,"wires":[["f4c08d8dbe946b66","47c40e86839fc384"]],"outputLabels":["loulou"]},{"id":"f4c08d8dbe946b66","type":"change","z":"20638da65a4e7b54","name":"Cat_Part_ID","rules":[{"t":"set","p":"Cat_Part_ID","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1795,"y":240,"wires":[[]]},{"id":"9a0a523fe3e4c330","type":"ui_group","name":"DropList","tab":"8a11ed5db152ab89","order":4,"disp":false,"width":"18","collapse":false,"className":""},{"id":"8a11ed5db152ab89","type":"ui_tab","name":"Inventory-Add","icon":"dashboard","order":12,"disabled":false,"hidden":false}]

What version of node-red-dashboard are you running? (you can get this from the palette manager or from the node-red startup log)

There was a problem with the ui-dropdown but I beleive it was fixed in version 2.8.0 - note the current release of the dashboard is v3.1.0

Hi ,

Here the full story:

  1. Backup my PI Micro SD

  2. Update from 2.0.5 to 2.1.0

  3. Problems with UI_dropdown

  4. Try to find out what could be wrong

  5. When back PI Micro SD (version 2.05)

  6. Last Weekend on my original PI Micro SD card with Node-red 2.0.5

  7. Several nodes updated

  8. Upgrade to Dashboard 3.1

  9. Same problem with UI_dropdown as when I upgrade from 2.05 to 2.1

  10. Yesterday

  11. Update Node-red to 2.1.3

  12. Update Nodej to 16.x

  13. Update linux to leastest

Still the same UI_dropdown problems

Thanks to all, it is very appreciated
Yves

If you are getting two different results from a node when you send it a message (if everything else is the same) then there must be a difference in the message you are sending in the two cases. Use debug nodes set to output Complete Message and look for the difference.

Hi Colin,

That is the problem,
image

This is the print screen debug - Using Inject Nodes (2) (UI_control goes not used)
Inject 1 - Send Empty Payload to clear the fields
Inject 2 - Delay 1 second and Inject

image

Before the UI_DROPDOWN
image

After UI_DROPDOWN - Selection can be made in the UI_DropDown
image

image

Now without Inject but using UI_Control to validate the active TAB

  1. Top link, send Empty msg,payload to clear fields on the tab
  2. The other one, wait 1 second

image

and my UI_DROPDOWN - Empty
image

et voilà

Best

Yves

In the flow you provided you have a function node after the mysql node. Can you add a debug node (set to display the complete msg object) and show us what that gives.

Also what happens if you click on the dropdown in the dashboard. In my tests while it initially shows empty, once you click on it, a list shows up.

Hi, Sorry I forget to add this printscreen

image

So the Debug messages showed on the previous post
MSG1 : The result is exactly the same for both ways to populate the UI_DropDown ( UI_control or Inject)
image

MSG2:

UI_Control : No debug message because can't do any selection in the UI_DropDown - Empty
Inject: The Selection I have done

image
image

it is probably a small thing, and I have the same behaviors for all UI_Dropdown even. if I have several UI_DropDown on the same TAB and as well on other tabs

Best

Yves

Hi,

The problem seems to be or related to UI_CONTROL. I am using this node on several tabs to get the active tabs name or number and then doing tab related task. Often to refresh display label and, as UI_dropDown, they won't refresh until I remove the UI_Control from the page (even if it is not connected to anything ) and then it is working.

Best

Yves

Do you need more than one ? I would think you can use a single ui_control node to receive the data/events and then use link nodes to send to other tabs.

Hi dceejay,

I didn't realize to use only one UI_control. I will clean up my app and see if it will help ( it should)

Thanks a lot for your help

Yves

Hi,

Following DceeJay I removed almost all my UI_control that I was miss using and with the new version improvements, it wasn't compliant anymore.

By doing that, it clean up the app as well as making de DropDown working

Thanks a lot DceeJay for the suggestion