Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Robo-Tank Web App - Development
#21
A little update, unfortunately not a lot has changed from last post as we've been getting crazy heat and my place is like an oven so haven't been feeling like sitting in front of a computer for hours all sticky. Most years we typically get a day or two above 30c but the prior week we were hitting 35c for days which is unheard of and now we've gone back to the 30+. I've been worried about my senior fish as the tank got up to 31c with a fan blowing on it for about a day which is by far an all time high, thankfully they all did well. I know I'm a wuss, 30 is a cool day for some of you. 

Anyways what I did get done was adding DHT22 temp / humidity sensor. If you assign a port for such the sensor will show up with the DS18B20's, you can see the humidity on the ball of the thermometer. The chart is also grouped with the DS18B20's charts.

[Image: ds18b20_2.PNG]
[-] The following 4 users Like Rob F's post:
  • albinochicken89, Dom59, JFReyes, Weasel1960
Reply to top
#22
Earth is getting crazy. Hop you are well, Rob.
And you know you are doing a very crazy good job!!...
[-] The following 1 user Likes Dom59's post:
  • Rob F
Reply to top
#23
Yeah in more ways than one.

Thanks, I'm trying, hopefully I'm not to much longer, I can see another month.
Reply to top
#24
(07-08-2021, 11:40 PM)Rob F Wrote: A little update, unfortunately not a lot has changed from last post as we've been getting crazy heat and my place is like an oven so haven't been feeling like sitting in front of a computer for hours all sticky. Most years we typically get a day or two above 30c but the prior week we were hitting 35c for days which is unheard of and now we've gone back to the 30+. I've been worried about my senior fish as the tank got up to 31c with a fan blowing on it for about a day which is by far an all time high, thankfully they all did well. I know I'm a wuss, 30 is a cool day for some of you. 

Anyways what I did get done was adding DHT22 temp / humidity sensor. If you assign a port for such the sensor will show up with the DS18B20's, you can see the humidity on the ball of the thermometer. The chart is also grouped with the DS18B20's charts.

[Image: ds18b20_2.PNG]
Thanks for the update Rob. Similar weather here in Wisconsin, in June and early July instead of mid-August. I read on R2R and another reefing source somewhere that a frozen water bottle in your sump will help keep the temp down in a pinch, saves on evaporation too.
[-] The following 1 user Likes Weasel1960's post:
  • Rob F
Reply to top
#25
Dohhh, didn't even think of frozen water bottles, the fan works great but yeah water disappears quick, next time I will try that, thanks!
Reply to top
#26
Strike 1.

Turns out I'm not liking the new layout, the widgets are cool but not for this application. I've been feeling this way for the last couple weeks and the dosing pumps was the final nail. 

Problem was the views within a widget could be different sizes so a user would be constantly adjusting the size of the widget when making a change. That was a problem with schedules and light modes so I added auto height as width was ok but dosing pumps the width also needed to be changed. With both auto width and height enabled other widgets would get pushed out of the way when one changed and this was very hard on the eyes. It also made it impossible to make a nice grid, it was starting to look like a Tetris game full of holes. I also didn't like the fact everything wasn't right in front of you and a few other minor details.

It's a little sad with all the work I put in but I get to keep what I learned, the important thing is getting this right the first time, the whole idea is ease of use. Let me know your thoughts on the change.

As far as setback maybe a couple weeks max, all the systems are still usable it's just a matter of updating the website which is well underway and some things can wait till later and I'll just use what I have.
This is the new look and it's working, feels familiar.   K05164

[Image: dashboard2.png]

This is optimized for 1366 x 768 pixels, that's the size of image above but it does adjust for different screen sizes. From here it adds or removes extra columns and rows as display size changes. 

The header (top row) and footer (bottom menu) are fixed and always in view but the center content area is scrollable however no scroll bar is shown as it doesn't look good.

Overall I think this will be more intuitive vs the widget design and IMO it looks better.
[-] The following 2 users Like Rob F's post:
  • albinochicken89, vilich
Reply to top
#27
Rob, like the new layout everything seems proportional and easy to access. My only dislike is
I have trouble reading dark text on a dark background. If the user can select colors great. I f not my vote would be for more contrast. Personally I like the darker dash board as it provides less harsh light, so maybe the dark blue becomes cyan?  My 2 cents.

PS
I do like the dark blue icons withe the white graphics.
[-] The following 1 user Likes Weasel1960's post:
  • Rob F
Reply to top
#28
Hi Weasel1960, thanks for your feedback. I agree blue on black is hard to read, the temperature icon was already made with blue so I did the text the same to match but it will be easy to change the color. I'm going to start with just dashboard being customizable. You'll be able to change background, labels, info, chart line, dosing vessels, AC/DC icons and the menu, each menu button can have it's own color. I'll probably have a quick night/day button to change background to white and text black and vice versa.
[-] The following 2 users Like Rob F's post:
  • albinochicken89, Weasel1960
Reply to top
#29
Photo 
This week I've been reformatting things for the new template and everything is pretty much finished. I've been spending some time on the port configuration screen and this is what I've come up with, not sure if it's a winner yet but it's working good so see what happens.

This is the settings menu coming from the home page, as things are added more icons will appear. The dosing screens are the same as the widget was.
[Image: settings_menu.PNG]

This is "Configure Ports" screen. At the top you see a setting for Robo-Tank or Custom, if Robo-Tank is selected you get the following screens and later it'll effect other things through out, mainly pictures or to simplify things.

The idea is a person clicks a port and then they edit the port. The image will resize based on screen size.

[Image: configure_ports.PNG]

After clicking a port you'll get the details and can edit them. As this is a DC port the functions available are AC outlet, DC port, Light, Dosing Pump or Auto Feeder. When you click on a sensor the list is a variety of sensors. For the sensor the functions all do the same in the backend, it's is just so the appropriate sensor icon shows on the home page.

As the DB9's technically have 8 ports when you click it the options will be AC power bar or the extensions I have available. If a user does want to DIY extra ports on the DB9 they can flip to "custom controller" and edit each pin separately then go back to Robo-Tank.

[Image: configure_ports2.PNG]

This is the screen for "custom", it groups each driver and the pins available. I just noticed now this pic is wrong, pins for each driver are mixed as I changed the sort for something else but you get the idea. When hovering over a box an icon will appear to edit it.

[Image: configure_ports3.PNG]
[-] The following 4 users Like Rob F's post:
  • albinochicken89, JFReyes, rott, Weasel1960
Reply to top
#30
Can we play with this yet? Looks great!
[-] The following 1 user Likes Brooks's post:
  • albinochicken89
Reply to top
#31
Hey Rob, it looks awesome! I honestly can't wait to get my hands on it. When do you think you'll have a launch date? Also, will your system be able to send out notifications?

Below is jus the going on a tangent about what I'm looking forward to testing!

As I said in another post one one of my main things I'm looking forward to is macros. My tank is an AIO so I don't have a sump underneath. The challenged I faced was that I wanted one hose for everything running to the tank vs having lines for dosing, AWC, ATO. Right now I have a DIY container that is 3 chambers - Waste Water, Fresh water, and Saltwater. On top of that I have my solenoid valve controllers that are - External valve (I carry up 5 gallon buckets and hate dumping them in so I put quick connect hoses), Valve to the tank, Valve over salt, fresh, and waste, and a dosing valve. 1 high peristaltic pump controls it all. I also have flat switches in each chamber to alert me if they are empty or full.

Currently, with Reefpi I can't get any of that to work unless I manually hit "run" on the macro. What I'm looking forward to, and I understand I for whatever reason your thing can't do that right away, is let's say 10am my ATO sensor checks status. Decides it needs to fill up....the Freshwater valve opens, the tank valve opens, Pump kicks on, Water is added until full, sensor shuts off (and ATO ability) until I set a time for it to check again.
[-] The following 1 user Likes albinochicken89's post:
  • Brooks
Reply to top
#32
Thanks guys, sorry it's not quite there yet, still need to add pH calibration, custom rules and tie up some lose ends. There will be notifications but yes something I haven't been thinking about and does need to be added sooner than later so I'll probably do that first as well, at least basic ones. I guess I also need to setup a basic log as well but that shouldn't take much as I do have one running, just not logging anything yet. This log will simply show every action taken, like when an outlet switches or a custom rule or schedule runs etc. So yeah for sure a couple weeks but I'm continually on it. Today I just started on the custom rules, this is the hardest of above so if I can get this done in a week I should be half way there.

Albinochicken89 that sounds like a good system you have and it shouldn't be a problem.
[-] The following 1 user Likes Rob F's post:
  • albinochicken89
Reply to top
#33
Still hard at it, I think I have a decent interface for the custom rules finished. Spent quite a bit of time trying to get it as easy to use as possible, hopefully I some what succeeded. It looks ok on all screen sizes, I test by changing the browser size. Visually there's things to improve but I must go on for now. None of this actually works on the backend yet but the database tables are working and the test rules seen are being read from it.

This is the main screen for the custom rules. You can see there are 3 of them. I will be adding buttons on the right side to delete, edit and disable so I guess it's not finished yet, a few more hours to go.

[Image: rules.PNG]


When you click on a row it expands and shows the details, you can expand more than one.

[Image: rules2.PNG]


Now let's go through the steps to add a custom rule. This is what you see when the "Add Custom Rule" button is pressed.

We'll select the "Sensor" button.

[Image: rules3.PNG]


Now it'll ask for a sensor.

[Image: rules4.PNG]


This is the list. The types of sensors are separated, later flow meters, EC etc will be available, anything that outputs a value.

In the temperature sensor section you can see 2 rows for "Room", that's a DHT22 which has humidity as well. These are the custom names, I named the sensors like that so I can track them easier.

[Image: rules5.PNG]


As you can see "Sensor 4" was selected, the system knows what each sensor is so the screen text and images fit accordingly. If sensor 4 was defined as a non-contact sensor the image would be one of those in the same format. There's also an image for optical and a generic for other sensors. A little off topic but these images will be the ones on the dashboard in info boxes so you can always see the state of each sensor.

The entire blue boxes are buttons so they are large for mobile. 

[Image: rules6.PNG]


After selecting a trigger level it draws the delay setting and asks if you want to use a 2nd sensor. I need to update the text to say "How long should the float switch continually hold". This means the float must not touch water for 15 consecutive seconds. I recommend at least 1 second as things will switch real time so waves can make something turn on/off really quick.

[Image: rules7.PNG]


The first sensor is configured, now we can setup the 2nd sensor if selected.

First it will spell out the first sensor and we'll select OR in this example.

[Image: rules8.PNG]


Now we go through the same steps as the first sensor. You can see the drop down removed sensor 4 as it's already being used.

[Image: rules9.PNG]


This time will select a temperature sensor, other sensors that have a value such as pH will be like this. I don't particularly like the <= and >= buttons but nothing was coming to me. The default value that appears is the live value of that sensor as it's assumed the setting a person is after will be in that range. The longer you hold the up/down buttons the quicker the number rolls. Personally I like buttons to change values over typing them in for the visual effect but later through out the program I'll have a feature that you double click the value and it will change to a text box so you can type in instead of fumbling with buttons.

[Image: rules10.PNG]


Again it draws the delay option and now we can select the equipment to control.

[Image: rules11.PNG]


Now it prints all the equipment available, later lights will be there for custom modes. If I disable Outlet 2 it wouldn't appear here. This is the point of being able to disable ports on the controller so they don't clog up other screens.

I did forgot to put a legend for available options so that will be there. You click each icon to cycle through the options.

Grey          = No Action
Green        = On
Red           = Off
Red/Green = On/Off
Green/Red = Off/On

The backend won't care about on/off or off/on order, that gets shorted in next step, it's only for visual effects.

[Image: rules12.PNG]


Now it shows everything selected and a delay before each action can be added. You can see it added extra line for on/off off/on, these the delays must be different, an error will appear explaining if a user doesn't understand. You can see "Power Head" will turn off 10 seconds after rule starts and turn back on 110 seconds later or 120 seconds after custom rule starts. Down the road I'll probably change the language for option on duplicate outputs so a person can say 110 seconds later or something. I'll also add a small button so user can use seconds, minutes or hours for the delay.

You can see for the dosing pump a 2nd option is available "Ignore". Sadly I need more than one word to describe it which messes up the layout on small screen. That will be sorted. The point of this option is so the dosing pump won't run again for that period no matter what other rules or schedules have planned. Basically a safety feature so you don't overdose. This also isn't reflected in the main menu or review new rule screen yet but will be.

[Image: rules15.png]


Finally it asks for a custom name, I left it empty so you can see it won't move forward without. 

[Image: rules16.PNG]


Now you can review the rule and save it. I have the data ready to go to backend so for now the UI is basically finished. You can see the width is fixed so dosing pump name is pushing icon down, lots of polishing required so things like that will be part of beta. :) Plus none of these layouts are set in stone yet.

[Image: rules17.PNG]

I hope this all makes sense, let me know your thoughts. There will be one more system for custom modes, these will cover things like feeding mode, maintenance, etc so this is only half. Between the two I don't think there will be much it can't do. The custom modes will come after beta release.

Later there will be a few more options, things like enable/disable ATO, heater etc. For the beta release there will be no ATO or heater systems but you can use two custom rules to set things like that up. Sub systems like those will be at top of list after initial release.

I've also been tying up lose ends here and there only a few minor ones remaining. This is real list I need to worry about, more than I like but hey. If you can think of anything important I'm forgetting let me know.
  • Add custom rules to backend (hard to estimate, around a week)
  • Email system UI and backend (looking like this will be a lot more trouble than expected with c++, maybe a week)
  • pH calibration, want something nice (2 days)
  • Add a logging system starting with basic logs (1-2 days)
  • Add "manual" mode for AC outlets and DC ports (1 day)
  • Figure out a system to manage chart options (1 day)
  • Add auto/manual program update and backup feature (1 day)
  • Option to auto submit any errors to an specified email, could be me (1 day)
  • Add DC ports, dosing pumps and custom rules to existing scheduling system in backed (few hours - 1 day)
  • Add dashboard auto update for dosing vessels and light modes (couple hours)
  • Add upcoming schedule list in front end (1-2 days) Not really necessary though
So yeah the two big hurdles are custom rules and email. Custom rules I know I'll get through, it's mainly a lot of testing, but it's a learning curve for the emails, at least how I want to do it. I think I'll do emails first as that's the unknown and has me  K05106.
[-] The following 4 users Like Rob F's post:
  • albinochicken89, Dom59, JFReyes, Weasel1960
Reply to top
#34
Look at the spam email I just received.  K05104   K05163  K05164

[Image: email_alert.PNG]

Looks like I smashed that estimate of a week, happened to stumble across libquickmail and after figuring out how to install it and configure it actually works and exactly what I want. Looks like it'll do everything and then some.

https://sourceforge.net/projects/libquickmail/

Now I'm not completely out of the woods as this was using SMTP, I'm using my domain email to test. Not sure how it will work with Gmail yet but we'll get there. Just so happy to get an email from the program directly.
[-] The following 1 user Likes Rob F's post:
  • Weasel1960
Reply to top
#35
This looks amazing! Keeps us updated. Im super excited to try it out.
Reply to top
#36
It's all looking awesome rob!
Reply to top
#37
Thanks guys.

Emails are now fully working, I've tested with Hotmail, Gmail and my own address so that's a load lifted.
[-] The following 1 user Likes Rob F's post:
  • albinochicken89
Reply to top
#38
Is this effort going to be open sourced when it enters beta?
Reply to top
#39
(08-11-2021, 09:24 PM)deeproot Wrote: Is this effort going to be open sourced when it enters beta?

Hi deeproot, yeah it will be open source, I don't know at this point how much support I will offer if a person doesn't have the controller, will see how it goes.
Reply to top
#40
This is awesome news. The leading factor in my purchase was that this project was open. I got burnt by the reef keeper system when they decided to stop all of the sudden. This thing gonna grow some legs.......... great job and thanks.
Reply to top


Forum Jump:

Current time: 01-18-2022, 08:00 AM