reef-pi User Interface (UI) development thread

OP
OP
Des Westcott

Des Westcott

Well-Known Member
View Badges
Joined
May 29, 2018
Messages
645
Reaction score
1,034
Location
Durban - South Africa
Rating - 0%
0   0   0
Here's something I'd like to see :

Details on running Macros
  • If a Macro is currently running or not
  • Which step of the Macro is currently running
  • I'd also like to be able to cancel a Macro and if possible revert any equipment to the stage it was when the Macro was triggered.
An Off / Running toggle similar to what the Temp, ATO and Timers have might be a nice start to quickly identify if a Macro is running.
Maybe a "time triggered" somewhere so you can work out where in the Macro you are at present?
 

Michael Lane

Well-Known Member
View Badges
Joined
Aug 11, 2018
Messages
677
Reaction score
1,123
Rating - 0%
0   0   0
Here's something I'd like to see :

Details on running Macros
  • If a Macro is currently running or not
  • Which step of the Macro is currently running
  • I'd also like to be able to cancel a Macro and if possible revert any equipment to the stage it was when the Macro was triggered.
An Off / Running toggle similar to what the Temp, ATO and Timers have might be a nice start to quickly identify if a Macro is running.
Maybe a "time triggered" somewhere so you can work out where in the Macro you are at present?
This seems like a popular idea, and is probably a good use case for us to implement sockets for server driven communication to the web front end.
 

piero.santagata

New Member
View Badges
Joined
Dec 26, 2019
Messages
1
Reaction score
2
Rating - 0%
0   0   0
I'd like to have the moon phases and another PWM channel for lighting dissipation fan with temperature probe, of course the heat sink temperature must be seen in the dashboard. I would also like to have a doser function
 

Michael Lane

Well-Known Member
View Badges
Joined
Aug 11, 2018
Messages
677
Reaction score
1,123
Rating - 0%
0   0   0
I'm wrapping up some changes to the drivers page and adding validation. I am considering adding a check for I2C address fields.

Does anyone have a use case where they would want reef-pi to accept an address that doesn't exist on the bus?
 
OP
OP
Des Westcott

Des Westcott

Well-Known Member
View Badges
Joined
May 29, 2018
Messages
645
Reaction score
1,034
Location
Durban - South Africa
Rating - 0%
0   0   0
I'm wrapping up some changes to the drivers page and adding validation. I am considering adding a check for I2C address fields.

Does anyone have a use case where they would want reef-pi to accept an address that doesn't exist on the bus?

If I understand the above correctly, I don't see a use case for non-dev users to want that. I think the kind of people that do will know how to do a work-around.
 
OP
OP
Des Westcott

Des Westcott

Well-Known Member
View Badges
Joined
May 29, 2018
Messages
645
Reaction score
1,034
Location
Durban - South Africa
Rating - 0%
0   0   0
I've got a strange one i think.

I've been running a few Macros on Timers and can't get the niggle out of my head "Did it run?", "Did it run PROPERLY?" "Did pump XX turn on properly?" etc.

It might be nice to have an option on Timers to get an alert after a successful actuation that all went well. In my case I wouldn't want it on for my flow pumps that the timer runs every hour, but for a feed or AWC, I'd like to get the message alert "Timer XXX run successfully at 10H30" or something similar.
 

Michael Lane

Well-Known Member
View Badges
Joined
Aug 11, 2018
Messages
677
Reaction score
1,123
Rating - 0%
0   0   0
I've got a strange one i think.

I've been running a few Macros on Timers and can't get the niggle out of my head "Did it run?", "Did it run PROPERLY?" "Did pump XX turn on properly?" etc.

It might be nice to have an option on Timers to get an alert after a successful actuation that all went well. In my case I wouldn't want it on for my flow pumps that the timer runs every hour, but for a feed or AWC, I'd like to get the message alert "Timer XXX run successfully at 10H30" or something similar.
This sounds a lot like feedback on macro progression. I think this could piggy back on that theme.
 

robsworld78

Well-Known Member
View Badges
Joined
Feb 14, 2020
Messages
952
Reaction score
1,280
Location
Edmonton, Canada
Rating - 0%
0   0   0
Here's some ideas for the macros that would really open things up.

I like how you're able to disable individual sensors or whole groups that might trigger equipment and add delays between the steps but it's limited as you can only control "equipment" devices and delays don't always work as pumps age and runs times vary.

Also when you assign a macro to a sensor it runs continually which is annoying. For example you can't setup a backup sensor for an ATO, as both are always running you get a quick on/off pulse between readings, I tried every which way but couldn't do it and understand why.

What I propose is bringing all the control features to the macro page. Instead of going to the temperature, ph or ATO tab to setup equipment/macro control do it all on the macro page. Having these controls on the individual modules also puts a limit on what you can do as you can only assign one action per sensor.

Based on the current layout think of it like this.
  • Click the + sign to create a new macro
  • You get the 'name' field and a drop down to select any sensor parameter that's in the system, one of the options is 'no sensor', these could run manually like now or via timers.
  • Lets say I select temperature sensor 3 or anything else, it will give two fields.
    • greater than or less than option
    • trigger value
  • Then proceed to setup steps like it is now with the addition of trigger dosing pumps and email. You can have an option on doser page for max doses per day so a macro can't accidentally over dose the tank.
End result would be if temp3 > 75.1 turn on outlet 1, In the background when it's triggered a variable is changed so it can't run again, the variable is reset once temp goes below 75.1 +/- hysteresis and will trigger again if/when it goes above 75.1 again.

Like that you can use temp3 over and over, maybe setup another macro if temp3 > 75.5 turn on outlet 2 and send alert. You could also use the macro just to send an alert the parameter went out of range.

Another example with float switches or sensors, one macro the user could say if float1 = HIGH turn on pump1 and another macro would say if float2 = LOW turn off pump1. Those two sensors would control that pump. This can't really be achieved right now unless those two sensors are switched at the exact same time otherwise they will fight for control of the I/O pin and cause a pulse.

Like this it would be up to the user to decide what happens to outlet 1 if temp3 triggers it, maybe temp3 is used to undo that action or another parameter is used instead. In this case it's up to the user to follow up on that outlet. This macro will turn it off so you need a timer or another macro to turn it back on. For example to control a heater you setup two macros.

I understand reef-pi reads Amps from HS300 so this would also be a selectable parameter for the macro, if outlet 1 Amps > 1.2 turn off outlet 1 and send email.

I hope this all makes sense.
 
Last edited:
OP
OP
Des Westcott

Des Westcott

Well-Known Member
View Badges
Joined
May 29, 2018
Messages
645
Reaction score
1,034
Location
Durban - South Africa
Rating - 0%
0   0   0
Here's some ideas for the macros that would really open things up.

I like how you're able to disable individual sensors or whole groups that might trigger equipment and add delays between the steps but it's limited as you can only control "equipment" devices and delays don't always work as pumps age and runs times vary.

Also when you assign a macro to a sensor it runs continually which is annoying. For example you can't setup a backup sensor for an ATO, as both are always running you get a quick on/off pulse between readings, I tried every which way but couldn't do it and understand why.

What I propose is bringing all the control features to the macro page. Instead of going to the temperature, ph or ATO tab to setup equipment/macro control do it all on the macro page. Having these controls on the individual modules also puts a limit on what you can do as you can only assign one action per sensor.

Based on the current layout think of it like this.
  • Click the + sign to create a new macro
  • You get the 'name' field and a drop down to select any sensor parameter that's in the system, one of the options is 'no sensor', these could run manually like now or via timers.
  • Lets say I select temperature sensor 3 or anything else, it will give two fields.
    • greater than or less than option
    • trigger value
  • Then proceed to setup steps like it is now with the addition of trigger dosing pumps and email. You can have an option on doser page for max doses per day so a macro can't accidentally over dose the tank.
End result would be if temp3 > 75.1 turn on outlet 1, In the background when it's triggered a variable is changed so it can't run again, the variable is reset once temp goes below 75.1 +/- hysteresis and will trigger again if/when it goes above 75.1 again.

Like that you can use temp3 over and over, maybe setup another macro if temp3 > 75.5 turn on outlet 2 and send alert. You could also use the macro just to send an alert the parameter went out of range.

Another example with float switches or sensors, one macro the user could say if float1 = HIGH turn on pump1 and another macro would say if float2 = LOW turn off pump1. Those two sensors would control that pump. This can't really be achieved right now unless those two sensors are switched at the exact same time otherwise they will fight for control of the I/O pin and cause a pulse.

Like this it would be up to the user to decide what happens to outlet 1 if temp3 triggers it, maybe temp3 is used to undo that action or another parameter is used instead. In this case it's up to the user to follow up on that outlet. This macro will turn it off so you need a timer or another macro to turn it back on. For example to control a heater you setup two macros.

I understand reef-pi reads Amps from HS300 so this would also be a selectable parameter for the macro, if outlet 1 Amps > 1.2 turn off outlet 1 and send email.

I hope this all makes sense.

What you're saying does make sense to me.

The bigger question is "will it make sense to every new user that gets into reef-pi?" or more to the point, "will it be intuitive to every new user?"

I think that there needs to be "idiot-proof" modules like ATO, pH Control and Temp Controls that could almost work out the box with little to no user input. Maybe then have an "Advanced Mode" or "Advanced Settings" that can be accessed by a power user to get it to do the really clever stuff.
 
Last edited:

robsworld78

Well-Known Member
View Badges
Joined
Feb 14, 2020
Messages
952
Reaction score
1,280
Location
Edmonton, Canada
Rating - 0%
0   0   0
What you're saying does make sense to me.

The bigger question is "will it make sense to every new user that gets into reef-pi?" or more to the point, "will it be intuitive to every new user?"

I think that there needs to be "idiot-proof" modules like ATO, pH Control and Temp Controls that could almost work out the box with little to no outside input. Maybe then have an "Advanced Mode" or "Advanced Settings" that can be accessed by a power user to get it to do the really clever stuff.

The way I explain things it won't make sense to everyone but it's actually pretty simple and really powerful, the layout / labels go a long way in making it user friendly. I have a system like this on my controller called custom rules and it works well, it does allow for a lot of scenarios that can't be achieved with macros and macros do some things it doesn't.

I don't know what's going on in the background which is really frustrating but it seems to need some extra checks before triggering the macro and allow only one way control. When I first setup reef-pi I assumed I could setup a main and backup ATO sensor plus 10 more backups if I so desired, the sensors would control the same pump. The end result is when it reads through the sensors it will turn the I/O pin on / off quickly. The ATO backup is just one example, it happens when using multiple sensors for anything because both are trying to control on/off when you only want one controlling on and one controlling off. If you want a single sensor controlling one piece of equipment you create two macros, this gives a lot more control.

This is what I did.
  • Placed all parameters in an array, array location was the sensor ID.
  • Then a continuous loop running as fast as it can goes through all the macros looking at the sensor ID for each macro. When a match is found it stores the current value for that sensor in a temporary variable.
  • Now it continues through the loop, if the macro is > it goes one way otherwise it goes the other way.
  • Then it looks to see if the current value is above/below the trigger value, if it is it continues through the loop.
  • Now it checks to see if that I/O pin is on/off and if this macro already triggered the action, if macro says turn on and I/O is already on it takes no action and exits the loop. If its determined it needs switched it does so and sets the trigger variable to true so it doesn't run again the next loop.
  • When the actual value goes to the other side <> of the trigger value or something else switches the I/O pin the trigger variable is reset.
 

Zippyfear

Community Member
View Badges
Joined
Apr 30, 2019
Messages
86
Reaction score
152
Rating - 0%
0   0   0
Daily and weekly DB self backup, so when I muck something up I have restore options (Plenty of extra room on my SD card for 2 extra DB copies. :) or at least an import and export button. maybe export it to a .json or something readable.. so it can be modified and re-imported..
 
OP
OP
Des Westcott

Des Westcott

Well-Known Member
View Badges
Joined
May 29, 2018
Messages
645
Reaction score
1,034
Location
Durban - South Africa
Rating - 0%
0   0   0
Daily and weekly DB self backup, so when I muck something up I have restore options (Plenty of extra room on my SD card for 2 extra DB copies. :) or at least an import and export button. maybe export it to a .json or something readable.. so it can be modified and re-imported..
I'd like the option to email the backup file in the same way as alerts are sent. So essentially if sent to a Gmail (or similar) address is like a cloud backup.

Or just the option to email the backed up file.
 

NeonRabbit221B

2500 Club Member
View Badges
Joined
Jun 21, 2019
Messages
3,037
Reaction score
5,607
Location
Richmond, Va
Rating - 0%
0   0   0
It would be nice to be able to stop a dosing pump from running. Accidentally had the wrong doser selected for shut off in my AWC macro so it kept running. It seems once the command is given that it just goes until the power is cut or the operation is done
 
OP
OP
Des Westcott

Des Westcott

Well-Known Member
View Badges
Joined
May 29, 2018
Messages
645
Reaction score
1,034
Location
Durban - South Africa
Rating - 0%
0   0   0
It would be nice to be able to stop a dosing pump from running. Accidentally had the wrong doser selected for shut off in my AWC macro so it kept running. It seems once the command is given that it just goes until the power is cut or the operation is done

Yeah. I think that falls under the "Cancel a running Macro" thing I posted above. I agree and know Ranjib and the other devs are looking at the Macro stuff.
 

lilgrounchuck

Well-Known Member
View Badges
Joined
Sep 12, 2019
Messages
694
Reaction score
987
Rating - 0%
0   0   0
One thing that might nice to add would be a tab to add testing parameters like alk, ca, mg, etc manually. This would eliminate the need to track these things separately in a notebook or a spreadsheet somewhere else.
 

Ranjib

7500 Club Member
View Badges
Joined
Apr 16, 2016
Messages
9,825
Reaction score
17,041
Location
Pleasant Hill, Concord
Rating - 0%
0   0   0
One thing that might nice to add would be a tab to add testing parameters like alk, ca, mg, etc manually. This would eliminate the need to track these things separately in a notebook or a spreadsheet somewhere else.
Yes.. this is an itemized thing for 4.0 release
 

cnidus

Community Member
View Badges
Joined
Mar 19, 2020
Messages
67
Reaction score
80
Rating - 0%
0   0   0
So for the equipment it would be great to have On/Off/Auto as options. Ie allow the user to manually enable/disable or put its status according the the macro's/automation.

Currently it seems if you have Macros/ATO's etc that control a device, you have to go play whack-a-mole when you want to manually disable. Or create more macros that disable the macros etc, like a "turn off return pumps, disable all the macros that interact with the return"-macro.

Along with this it would be good to show "current status" of the equipment when in Auto-mode. It could be a power 'light' next to the ouput showing if its on/off.

I think this would help make it easier for new users, whilst also simplififying more advanced macro-users' lives as well.
 
Back
Top