Updating Groov View and Node Red software via script


I have an application I am working on that involves many duplicates of the same unit. Any time the code is modified on one unit (whether its in Groov View, Node Red, or Codesys) I have to manually push the update to all the other units, which is getting to be time consuming. I am looking into using the Codesys Automation Server for the Codesys aspect of the code, but am not sure how to handle the Node Red and Groov View aspects.

I would like to write a script to push the update to all of the other units. Has anyone accomplished something similar? Is it possible to update the software for these systems via the shell?

Hi Canyon, welcome to the Opto22 forums!

Like most things with shell, you are welcome to try, we cant support everything, but we will help the best we can…

That said…
groov View can be found at /var/lib/nxtio/services/view/project.grv
Do note that you will need chown groov22:groov22 that file so it has the right owner and permissions after you copy it to the new device.
Note also that file does not include the trends, but it sounds like you want a new install vs an old clone.

Node-RED flows can be found at /home/dev/.node-red
It needs to be dev:dev
But. You can make a master clone zip file of the project via groov Manage and it will include the nodes, flows and creds file, so I would be moving that around vs just the flows.json
Do you agree @torchard ???

Codesys I have no clue about. Paging @greichert Can we grab a file(s) and move it to a new EPIC and be up and running (license excluded of course)??

1 Like

Thank you for the quick reply. Your response was very helpful, and I’ve been able to at least verify that what I am trying to accomplish is feasible.


Welcome to the forums Canyon!

Yes, that would be the best way to go. @cgerbracht just keep in mind that anything unique to the device, for example hostname, IP address, API key, or anything else that is different in the flow for each instance (“building 1 system 3”, type of thing) will of course need to be set after restoring the project.