Looking for some insights

So I am still relatively new to Node-Red but the more I dive in the more the wheels start spinning. I have a daily problem that I have been looking to create a some sort of solution to for some time now and think node-red may be it......just struggling to wrap my head around how......

I implement and support a particular video management software on a daily basis, software is great however it lacks one key feature...the ability to export configurations in a useable format. I have several sites I support in the 500+ camera range, if I want i want to export a simple device list I can, but only in PDF format. This PDF is often in the 1000+ plus page range....

What I am looking to do is use Node-Red to interact with either the software's SDK or SQL database directly to pull configs, separate the responses and format into excel or any other sort/filterable format. My thought process is to create a dashboard with tabs.....a tab for authenticating with current status indicator....connected/disconnected.....a tab with user selectable options that build the call to the software and a tab to select/export the file. Ideally I also would like to have a monitoring tab that connects to the software's event stream showing system messages and device status.

I know Node-Red can so what I want.....just trying to figure out how.....looking for any insights, suggestions, experiences, etc from the community. The solution I am trying to create would have many uses and not just on this particular software.....I have other systems that I am looking to do similar for.....This particular software is solely Windows based with an SQL db and C# SDK.......I have another system that is embedded linux based (locked down by mfr) , PostgreSQL and XML API and one that runs on linux, arm and Windows with a mySQL db and REST API (this one seems to be by far the simplest to interact with)....Thanks in advance hoping someone may be able to point me in the right direction.

My first suggestion would be to start small, break what you want to do into small bits and work on them one at a time. Draw a flow diagram on paper with the events that will take place.

Once you have that, you should see how things logically will be grouped. For example you want to build a dashboard that allows the user to select certain choices. So build that and dump the output to a debug node (or nodes) to make sure it is correct. You might need to store the choices in a context variable so when you pass it on to the ā€˜data procurementā€™ section where you will convert the choices into a database query. Then you have the results section.

Anyways, thatā€™s what I would start with.

2 Likes

I'd agree but would also say that I would look at the different components I need to get data from. If I didn't know how to do that, I would start there, start small and work out how to get some data out. Then I'd look at how/whether I could or needed to combine data to get a result I could work with. Lastly I'd look at how to output the information in the most useful way.

1 Like

I fully agree with the above answers, break it into chunks.

I would be tempted to try the SQL approach. I have often found API's a bit fiddly, and I like the flexibility SQL provides as you can do a bulk of the legwork in your query and end up with data shaped the way you want. That also seems to be the common denominator between systems, so you have a better chance of building a universal system.

Once you have a working query, replace some static bits of query with msg properties, and feed those from function or inject nodes based on what you'd need to change to get the right data.

With one of the MSSQL nodes you have lots of options, all the way from a static query to running stored procedures, fed with NR parameters or passing in entire queries directly, generated by a function somewhere else.

Once you can get the data you need into a file using inject nodes and functions its relatively simple to build a GUI around that.