Looking for a GUI to define Input for Schedex


#1

Hi Guys,

sry for my bad english, hopefully it is good enough.

I'm new to Raspberry PI and Node-Red also. My plan is to build a schedule food automation for my animals for days where i have to go to work - mostly for 3 days a week.

I spend a lot of time to look for ideas with the keywords "sprinkling", "schedule" and "time picker".

My plan is to use "schedex" to define up to 4 Starting points each day (hour:minute). Also to define the runtime in seconds. Also to activate this scheduling plan for the 7 days a week. Example for feeding:

Monday: 0, Tuesday: 1, Wednesday 1, Thursday 1, Friday 0, Saturday 0, Sunday 0
08:00 - for 200 seconds
11:00 - for 60 seconds
16:00 - for 60 seconds
20:00 - for 200 seconds

My personal problem: I cant find any GUI like this to feed the input of my "schedex".

Any Idea's? Thanks for spend your time!


#2

Hi @Cowboy, welcome to the forum.

I will try to reply to you by first asking a question :smile:

Do you think you really need a GUI in order to make it work? If yes, what capability would you expect from the GUI ?

I consider the Schedex one of the best timer nodes (at the time of this writing) as it can be programmed by incoming messages. Therefore you can use inject nodes to program and activate the timer. Your GUI would be in this case the own Node-RED editor. You would have something like this:

PS: feeding the pets for only 60 seconds ? Let me guess aquarium fishes ?


#3

@Cowboy, I too think that schedex is first-rate. I use more than 20 instances of it in one of my systems, and I program them using messages as @Andrei describes. I think that whether or not you need a GUI depends on how often you re-program the timers. I do it very rarely, so I generate the programming messages by reading a JSON file, parsing it into messages and routing them to the appropriate node. To change the schedule, I just edit the JSON file and re-start Node-RED.


#4

Hi @Andrei, thanks for your reply!

My pets are a special kind of pigeons. The amount of food depends on several factors: number of pigeons, number and age of the boys, weather. So i often have to change the Timer and the depending runtime.

Normaly i drive to my business place Tuesday morning and return on Thursday evening. So, typically, i use the "Automation" on Tuesday, Wednesday and Thursday. But in some weeks, these days are different. Also, it is possible, that i can feed manually on Tuesday morning or on Thursday evening. Sometimes I can work in my homeoffice the hole week...

So, my idea is, to have a generell switch in a GUI to choose "Feeding:" - "Auto" or "Manuell". Also to choose how often a day to feed (minimum once a day, maximum 4 times). And for the situation, that i leave my home on Tuesday later in the morning, to deactivate the first feeding job on tuesday for Once, because I want to feed manually.

The schedulded feeding is not the best choice. So i plan to take a picture from my pigeons loft 5 minutes after feeding and transfer it via telegram to my smartphone. Then I have to interpret the situation and sometimes I have to use my GUI to feed more for X Seconds.

My personal problem is, that I look always for a good quality in the frontend for the user - in this case - i am the user.


#5

Nice use case. Looks like it can be achieved by using the standard dashboard nodes from Node-RED.

Do you consider also using telegram to perform some kind of feeding control or it would be used only for the visual monitoring you mentioned?


#6

Wow, now that is an interesting use-case :slight_smile:

Discussion on the best approaches to scheduling with Node-RED come up fairly regularly and I think that the only thing we've ever been able to agree on is that there isn't a single approach that works for all.

Indeed, this came up again recently and I started to share some information about a possible comprehensive approach with Andrei but I don't think even that would be of that much help in this instance. Though it would have allowed you to build a custom interface for overrides. However, the approach I was looking at is very complex and needs a lot more thought.

It sounds to me as though you would be better off with a web page that displays the schedule for the day - I'd start with a standard base schedule, just one since you adjust it so much anyway - with an on/off override button. Then the 4 lines, each with it's own on/off setting, start time and duration.

On update, that could send the updated info back to Node-RED which would work out the output for schedex, bigtimer or whatever works.

So actually, thinking it through as a user journey lets us break the problem down into its key parts which is basically a web UI for output & input, a process to build a schedule and a node to enact that schedule.

It will probably not surprise you to hear me say that node-red-contrib-uibuilder would be ideal for building the web UI as long as you are OK with some simple web coding. Doubtless it is also possible to do with Dashboard as well. Though unless you need Dashboard for other things or are really not happy about doing any web coding, I think it would just be getting in the way.

You could also replace the web UI with a Telegram bot which means that you don't need to expose an interface to the Internet. However, such a bot would be fiddly to construct - though really it is just a different set of UI disciplines.

The good news is that, having broken down the process, you can see that the processing part would be similar no matter what the front end is.

Not sure if that monologue helps you at all but it was an interesting thought experiment if nothing else.


#7

The «Light Scheduler» node has a Nice GUI when configuring it: https://flows.nodered.org/node/node-red-contrib-light-scheduler

It hasn’t been updated for a while and don’t have any “advanced” features, but it may fit if it’s a GUI for you alone when you are configuring it you need.