Ui-time-scheduler

Been playing with this node for a bit now and it's my new favorite node, adding the topic really helped.
Thanks for the node and the update

1 Like

I think I have to point out that this node implements a bit of an anti-pattern against modern architecture ideas.
It is usually considered best to keep the presentation layer or UI (the dashboard in this case) separate from what is called the business logic layer in traditional IT terms, but here relates to the running of the process.
Suppose for example that the application was expanded to the point where the UI became too heavy and it was decided to migrate over to uibuilder. To achieve that if this node is in use will mean not only rewriting the UI but also re-implementing the scheduler.
An alternative to using this node might be to use something like the cron-plus node in conjunction with a UI in the dashboard to feed cron-plus the schedules, thus separating the layers.
I generally go even further and insert an MQTT layer between the dashboard and the logic, so I have UI flows which only manage the displays and get and send data to the rest of the system using MQTT. This has the advantage that the dashboard does not even need to run in the same node-red instance as the logic, or the logic can be split across multiple node red servers (Pi's and ESP devices in my case). The one dashboard to rule them all, so to speak.

Every single dashboard widget has to be rebuilt if we abandon the current dashboard and I am planning on doing so as soon as a decision is made. The only real difference to most UI widgets is that my widget runs a timer on the server side, and therefore covers a bit more than just UI stuff.

The node seems to help quite some people to archive automation stuff quite easily without the need to build a UI themselves... and that's the most important part I think.

1 Like

All true, but that does not affect the question of whether the UI and process control should be mixed together in one node. The alternative would be a UI node, possibly doing exactly what you have built, but passing its output to a separate scheduler node for the server side stuff.

However, I am not making a big deal of it, just pointing out the potential issues.

1 Like