Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Robo-Tank Web App - Development
#41
Thanks and sorry to hear that, I plan to be around for a long time, I like to think I'm just getting started.
Reply to top
#42
Hi Rob,

I like all the wizard screens here, that will be a game changer!

I'm a big fan off your lighting schedules, finally we can personalize the schedule for all weekdays   K0507


While a was reading all off this, how nice it would be if, someday, you could also save the wizard output into the reef-pi database.
This way users could easily switch between the 2 services.

I started with email notification, but quickly noticed that I was missing the important mails because of the increased mail quantity we receive every day.
Therefore I've switched to pushover, for a small one time fee, I never miss an important notification from my reef.
I'm using the mail integration, but there is a native integration possible  Lightbulb

Regards,
Jimmy
Reply to top
#43
Hi Jimmy, thanks, hopefully the wizards make things easy, I think it's better than a screen full of options. Unfortunately anything I do won't be compatible with reef-pi, it's built using different languages, database etc.

That looks like a good email service, a person could also pay a low fee to get a domain and email account with someone like 1and1, any SMTP service should work. I think I read Gmail has a limit of 500 messages a month.
Reply to top
#44
This is the screen to setup the email, I'll add more providers as time goes on. The SMTP server and Port field disappear if you select Outlook or Gmail.

The password is encoded in the database but obviously can easily be decoded, just did that so it's not plainly visible in the database. The password is only sent to the backend, it never loads on front end. Speaking of passwords the main login password is hashed so it's very secure. Can't hash this password as there's no such thing as unhashing, it's one way.

You can see the Admin email and 3 recipients, the admin will be used to reset the main login password if forgotten and other things down the road, that'll come after first beta. And of course the recipients are where alerts can go, I just realized I forgot to add the enabled/disable for each recipient field. Later I'm thinking it might be nice to select which recipient the alert goes to, for example ATO alerts could go to one email and Temp sensors to another.

[Image: emails.PNG]
[-] The following 2 users Like Rob F's post:
  • JFReyes, Weasel1960
Reply to top
#45
This is looking really great Rob. Working on my stand design and equipment selections, hoping to start buying equipment shortly. Keep us posted with the progress, love reading the updates.
Reply to top
#46
(08-13-2021, 07:25 AM)Weasel1960 Wrote: This is looking really great Rob. Working on my stand design and equipment selections, hoping to start buying equipment shortly. Keep us posted with the progress, love reading the updates.

Thanks! As you aren't in a rush it might be worth waiting for the next round, soon I'm probably launching another Kickstarter campaign.
[-] The following 2 users Like Rob F's post:
  • albinochicken89, Weasel1960
Reply to top
#47
Got a few more things finished, these are the main things but there was some visual improvements here and there as well.

This is the simple chart screen to start, there's a shortcut on the dashboard to get here. 

When you hover over the name buttons appear so you can select how much data is in the viewable window. This setting I still need to save to database but it works. There's another hidden setting on left corner when you hover to change the rolling average which smooths out the line. You can also drag the chart to go through the full time line saved.

Down the road not to far I'm going to add more features. This is what I have planned, if you can think of something else let me know.
  • There will be graphs for ATO, heaters, equipment, sensors etc.
  • User can set how often every graph is written, maybe one temperature probe is recorded every 15 minutes and another every minute. 
  • Custom graphs, overlay multiple charts of any type. These won't update to start as that gets complicated, they will be temporary charts you could say.
[Image: Updated_Version\charts2.PNG]

[Image: Updated_Version\charts.PNG]


The manual mode for AC outlets and DC ports is finished, both are the same so I'll show the AC outlets. I was manually switching the outlets from the dashboard but now when you click any outlet there you get this screen where you can click the outlet on or off. The extra screen is so a user doesn't accidentally switch an outlet.

When you switch one a red dot appears on the icon indicating that outlet is in manual mode meaning no other systems will ever switch that outlet until the user puts it back in "auto" mode. To do so you just click the red dot, you can see a label "Resume Auto" appears when the mouse hovers it. This is saved, if you restarted the controller the outlets will startup in the same state and still be in "Manual" mode.

[Image: Updated_Version\outlets.PNG]


Here's the dashboard view, you can see the red dots on the icons. 

The "Resume" button on the shortcut dock will resume all AC outlets, DC ports and lights back to auto mode. It's just a quick way to make sure everything is back in auto mode.

[Image: Updated_Version\dashboard3.PNG]


And I just about have the pH calibration finished, just a few little details to finish up but it working. The code already supports temperature compensation on the everyday reading plus temperature compensation for the buffer solutions, this makes the reading as accurate as it can be through the code. This is how temperature affects pH.

pH is voltage based and measured in millivolts. The circuit reads 0mV at 7.0 pH and +/- 1.0 pH = 59.16mV @ 25 Celsius. If temperature compensation isn't used the 59.16mV is what's used to calculate the value. For example lets assume the circuit was reading -89.92mV from the probe, that needs to be converted to pH. If you don't use temperature compensation we get  "7.0 - (-89.92mV / 59.16mV)" = 8.519 pH.  But what is the pH if the water was actually 30 Celsius not the assumed 25c. 

First we offset the 59.16mV doing this "59.16mV * (30c + 273.15) / 298.15" = 60.15mV. Now we run the math to get the pH. "7.0 - (-89.92mV / 60.15mV)" = 8.494 pH instead of 8.519. 

So you can see it's not a big change for our environments, in reality you could say this is more of an advertising benefit but it does affect things. The same technique is applied with the buffer solutions when calibrating.

The backend is also calculating the slope during calibration, I can't really explain that as I mainly forget but it can be used to indicate if a probe needs replacing based on how it performed during calibration. Again it's just a cool factor thing but definitely coming.

This screen is from the "Settings" button on dashboard, a few more buttons. This is where to go to calibrate.

[Image: Updated_Version\settings_menu2.PNG]


Any probes in the system will appear here, later I'm going to fully support Atlas conductivity, ORP and dissolved oxygen circuits and maybe their temperature sensors. This icon is red not yellow because different probe types will be different colors, pH is red.

[Image: Updated_Version\ph.PNG]


Next it'll ask 1 point or 2 point calibration or option to delete current calibration. If you hit delete a popup will appear to verify.

[Image: Updated_Version\ph2.PNG]


This is the single point calibration, dual is the same just slightly different text and you get this screen twice.

[Image: Updated_Version\ph3.PNG]


When you hit start it'll warn that current calibration will be erased.

[Image: Updated_Version\ph4.PNG]


At that point you sit and wait till the yellow bar completes. The criteria for that is 20 consistent readings within a +/- .004 range so it is strict. The controller reads probe every 3 seconds so this works out to 1 minute. If the criteria can't be reached after 15 minutes it'll just finish with what it has. In reality this should happen within 3-5 minutes.

If the calibration is 2 points when this finishes it'll go to the page above for the 2nd point and repeat.

[Image: Updated_Version\ph5.PNG]


And when it's done you'll get this screen. Later this is where it'll show the details and rate the probe. Good news is any calibrations done on beta you'll still be able to see results of current calibration when it's added.

[Image: Updated_Version\ph6.PNG]

I'm not going to add temperature calibration until possibly next release, I'm sure some are thinking about that, it's on the list that doesn't exist.
[-] The following 6 users Like Rob F's post:
  • albinochicken89, Brooks, deeproot, JFReyes, rott, Weasel1960
Reply to top
#48
The custom rules look amazing!!!! I can't wait to get this! I'm also glad to see it's going to be open source. Keep up the good work!
Reply to top
#49
Thanks, the open source thing is a little scary, it's a concept I can't quite wrap my head around. I can understand it if a person is in a position they don't need income but for me I'm not able to work 1,000's of hours for nothing, I know it sounds greedy but food is kind of important. Honestly I'm not very happy with the situation today, I always feel a level of guilt because I'm willing to bet I've made more money off reef-pi than Ranjib along with others and IMO that's just not right, one day I really hope I can do something for Ranjib as he's really the only reason I'm still around. This is a major reason I've been working on the app the last year, to get ride of the guilt. 

When I started this journey lots were hoping it would be open source but I choose to sell it standalone for $20 as I was worried nobody would buy anything from me and I wouldn't be able to continue. After a few months I stopped offering the software standalone because I wasn't selling any controllers as I feared. It was cheaper for people to just load up some Arduinos and DIY things. With that said I also know people who choose not to buy because it wasn't open source.

I worry about this again, the idea of the software is to increase sales because how things are today isn't sustainable, with other things I do I work 60+ hours a week to make this work because I love doing it and I am getting closer to having this pay all the bills, if I can get some marketing that would really help, I'm hoping the app will give me some good material. I feel better today about open source as the controller is affordable and better now so I'll see what happens, maybe I'm worried about nothing.

I am trying to come up with methods to monetize the app, I added a page at the end of the initial setup wizard for people to donate if they like via Paypal or crypto and toying with the idea of setting up something like a Patreon where people can donate a few dollars a month which would get them weekly updates or whatever, the rest of the world would get the update a month or two down the road. Of course anyone who owns the controller this wouldn't apply but I don't know maybe not a good idea. 

I also have a wild idea floating around my head I kind of want to do in the near future for the fun of it. Create a Robo-Tank crypto token on the Binance blockchain, when someone buys a controller they get free tokens which I transfer to their wallet in the form of locked liquidity for a select period, maybe 3-5% of sale. This would cause the price of the token to rise with every controller sold and the pot would have a year to build with no one able to withdrawal. The buyer could then cash out their tokens when the lock comes off and ideally it goes up enough to get at least the money they spent on controller back. With everything locked for the same period there would never be a complete cash out keeping price stable, volume of sales would determine price. Of course whales are welcome so maybe you get lucky haha, anyone will be able to buy tokens just as an investment. For each transaction there would be a fee that allocates a percentage to a marketing and developing wallet and a percentage goes to all the wallets of holders driving up their balance. Doing this actually wouldn't be that difficult, coming up with a model for price prediction based on estimated sales would be the difficult thing. For example what if 300, 500, 1000 controllers were sold in the year what would 3-5% of liquidity put the price at. Am I going crazy or does this sound like it might work and be fun?
Reply to top
#50
I do not think anyone with a normal mind would think you are being greedy. You have spend time from your family and life to build this ecosystem. When you opensource the reef controller software you will have people that will help you develop and fix bugs. This will help you have more free time. You will make your money from the sales of the hardware that you designed. I also would continue to expand your store to offer the probes and other accessories as package deals for a complete solution. I could have built this system without your boards but why? You provided a solution that is clean and easy. 

Some of the people that decide to just go about it on their own without your hardware will decide to help the project by coding and bug fixes. Some will just abuse and never give anything back. I think a patreon is a good idea and I also think an app for phones that ties into the api of the system could be non-free. 

I think its time for you to examine the different GPL / opensource licensees and pick one that suits you. This is your project and you can choose to keep it closed or open it up. As for me I wouldn't be upset if you choose to close it but I would stay on reef-pi for the remainder.  

I bought your solution because of the ease of use even when you are running a opensource "firmware" that I could've done on my own.

I fully understand your quandary and I do not mean to undermine in any way your hard work towards this effort. I think you are providing a needed solution to the HYPERinflated reef controllers currently on the market.

IMO the coin offering is fun but too complicated for people that just want a reef controller. You must be a computer programmer or an engineer of some sort to come up with that. I fear people not in the trade will no be keen on the coins.
Reply to top
#51
Thanks for your feedback deeproot, that's great.

I'm definitely committed to fully open source, after being allowed to use reef-pi as I am I couldn't do it. I do see the value in others able to contribute and there's definitely a few things that could be improved that is above my pay grade at this time, I'm no expert, just self taught. I'm hoping at some point I can learn from others that really know their stuff but one thing I like about my code is it's easy to read if you're not experienced as I use simple javascript functions and c++ is just logic. When I look in reef-pi code I don't know what I'm looking at, it's too professional, they do things in 5 lines that I would do in 20 but mine makes sense haha. That and no comments in the code is why I can't contribute anything of value, ultimately I would have made a UI for it. I tried for flow meters and it didn't go so well, it's very complicated just to work on it, mine is super easy, zero linux involved after installing, almost anyone can jump in and make basic changes. I've also been putting a lot of comments throughout so people can understand my thinking a little.

The app is a good idea but that would be difficult as it's a bunch more languages to learn but yes maybe one day. Selling accessories is difficult, I've contacted Milwaukee and there was another distributor for probes but it was a joke, the prices from so called Canadian distributors was way about what they could be purchased on Amazon so impossible to make anything unless I buy from Amazon and overcharge. The only option is cheap no name probes from China which I'm going to stay away from but is tempting. This is also why I don't package the kits with power supply or AC power cords, in the end everyone loses however I think soon I will start including those as it's not a good experience to need to buy things here there and everywhere and hope they work and it's not that much of a lose. That'll leave just the main probes to sort out someday.

A lot has changed since I started, back then it was all DIY, now I rarely sell a DIY kit so I do feel the risk is much lower. As long as I provide good hardware it should be ok. 

The Patreon I'm teetering on the benefit of early releases, I was trying to think of rewards as that's kind of how it works. The more I think about it I worry it looks like a loop hole, maybe I'll just have one if people want to contribute without rewards, hey maybe some Robo-Tank tokens that may or may not be redeemable.  K05163

I know the tokens are crazy and most could careless, probably bad as people will think I'm running a ponzi scheme here and run away, I look at it like stocks, you get some free and if company does well you get rewarded. I just think it's cool for a few days of work and less than $5 I can have a Robo-Tank cryptocurrency that could be traded like any other, I never realized that was possible. But yeah that's another day, just popped in my head a couple weeks ago and can't get it out haha.
[-] The following 1 user Likes Rob F's post:
  • Brooks
Reply to top
#52
Readable code is more important than code that does the same thing in fewer lines. I hate code golf.
[-] The following 1 user Likes Brooks's post:
  • Rob F
Reply to top
#53
Things are coming along however I did have a scare a couple days ago. I started adding custom rules to the backend, after adding just the variables needed the program no longer ran, it would crash after 10-30 seconds of running. Remove the extra variables that do nothing and it worked again, oh boy...

When it would shut down the program it said, segmentation fault, which suggests it was memory related which I fundamentally don't understand, it's very complicated. I managed to find a program called Valgrind that tested the memory and was worried when I saw the results, there were all kinds of memory leaks and errors that said something like this, how the heck is anyone supposed to know what this means haha.

==1912== Invalid read of size 8
==1912==    at 0x486B1DC: ??? (in /usr/lib/arm-linux-gnueabihf/libarmmem-v7l.so)
==1912==  Address 0x59d2640 is 8 bytes inside a block of size 10 alloc'd
==1912==    at 0x48486E8: malloc (vg_replace_malloc.c:380)
==1912==    by 0x48900F7: mysql_optionsv (in /usr/lib/arm-linux-gnueabihf/libmariadb.so.3)


It turns out I defined a lot of variables but didn't initialize them so basically there were pointers in the memory going to nothing. I don't think overall they were a problem as those variables were initialized before they were used but either way not good.

After fixing those then came time for the leaks in the memory heap, basically this means things would get written to the Pi memory and never released or cleared. With this happening it slowly uses up the memory on the Pi, because it has so much it was able to happen it but this can also cause havoc within the program which was happening when I added all the custom rule variables. The main problem here was some c++ functions I was using for date/time and a few others that weren't thread safe and would cause this exact thing, after replacing those functions with thread safe functions I was golden. After all this I added the custom rules variables where I started and no more crashing.  K05164 Whew, back on track and feeling great knowing everything in the memory is solid, wouldn't have been a good day if someone down the road pointed out the program had all kinds of memory issues. Now I'm starting to feel like I actually know what I'm doing.  K05111

Here's the summary, under the leak summary there were all kinds of lost bytes in all categories and they grew the longer it ran, it was a very sad moment to see it. There's still 504 bytes in possibly lost, this occurs during startup when either the the threads are started or the first read of the database, for sure it's no problem but yeah its definitely bugging me so I will be trying again later to eliminate it.

[Image: heap_summary.PNG]

Here's the list I posted a couple weeks ago, I crossed out what I've finished. Really only need custom rules, some logging, the dashboard auto update and I forgot to mention the "smart start procedure". This is a bit involved and the last step, it goes through all systems during startup so everything goes in the state it should be. When the "resume" button on dashboard is pressed this runs as well so everything goes back in auto mode. Then there's still a bunch of minor details which will take a couple days and then another big test of everything. I do heavy testing as I'm building so pretty confident things will be ok, just minor things I forget or miss here and there.
  • 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
  • Add smart start procedure
I don't have any new pics and can't post an update without so here's some "mobile" views. The width is 360px but they go down to 320px. The height is longer though. Sadly my Android phone is 6 years old and now not possible to open web app, can't open reef-pi either or anything else for that matter. Sad as the phone looks brand new, just can't update OS. So I've never actually tested on a mobile, I hope it works.

I do plan to have the header title disappear so there's room for the icons and as you can see lots of touch up needed. For the most part I've been focusing on the larger view and just making sure it fits small screens, will definitely be tweaking all these. Ignore the 32 degrees for room, reading DHT22 is time critical and I have the memory checker program running on the app so it runs slower and those don't work. Also the graphs are screwed up because it was down a couple days figuring out the issue.

[Image: mobile_1.png]
[Image: mobile_2.png]
[Image: mobile_3.png]
[-] The following 2 users Like Rob F's post:
  • albinochicken89, Weasel1960
Reply to top
#54
Well I have some bad news for some, at this time I've decided not to go fully open source despite what I just said the other day and before, now I need a hole to jump in.  K0587  This subject is more difficult for me than creating the software and I need more time to think about it, once I release it that way there's no going back and the closer I get the more I think about it.

I wasn't clear on my concern, what I fear is anyone at any time can create a PCB and start a business, basically I'm creating my own competition, anyone with some marketing skills would sink me using my own software, sadly that's one of my weaknesses. It's like Apex saying here's all the code, imagine how many knockoffs there would be and then where would they be. That's why there's 10,000 3D printers, they all use Marlin. I'm very dedicated to this project, even though I don't believe it will ever be the best I'm working towards exactly that. I know I'll be fine for a while as the software is brand new, it's down the road I'm worried about, this is only the beginning.

I'm definitely more comfortable programming than playing with hardware, as an example of what I can do, in Alberta 9 bingo halls are using a serialized inventory / POS program I made for the tickets they sell every event which needs to be reported to the government. It's polished, loaded with advanced features, fully audit proof and approved by Alberta Gaming and Liquor Commission. It launched 8 years ago and about 4 years ago the original guy who contracted me sold it to Bingo Alberta who then hired me to add more features. He then sold the program to each hall for big bucks and they pay a yearly license fee to use it.

So my point is I can do good work and overtime I hope to make this controller something great, it's slow right now due to learning curves for certain things and I'm a little slow with this stuff anyways. The problem I have is matching the hardware, as an example I'm not able to create a conductivity circuit for salinity, it's amazing I pulled off the pH circuit but came with a lot of headaches and almost failed, I was very close to taking it off. So for salinity this means $60 extra price tag for customer instead of $5 in parts and expanding my value range, only winner is Atlas instead of you and me. Once the app is polished and proven someone can come along and create all the cool hardware that I can't and there's nothing I can do about it but cry, this is what I worry about. If I had a shelf ready product it would be a different story.

I've always hoped I could make enough money to outsource some hardware projects and have an approved AC power bar and that remains the goal, my only path is software that sticks out and draws people in. Same with images, one day I would love to pay someone to make some cool icons, models, animations etc. I'm very lucky someone made most of the icons I use now, that's why most look good but I could use a lot more. 

My plan going forward is a revised controller which is basically ready, hard to believe the current model is already a year and half old. Then I'll run that controller for the same period and my focus will be only on the app. I'm also in talks with R2R to become a sponsor so I can discuss things on the forum and hopefully bring the numbers up. If I can get a little more targeted traffic I think it'll all work out. At one point about 6 months ago Google had me mid 1st page for search term "aquarium controller", with that alone I was selling more than I needed so I know it can happen if I can reach people, sadly I'm on page 2 now and good traffic has dropped quite a bit.

Anyways I'm very sorry for all this, maybe down the road I will reconsider.
[-] The following 1 user Likes Rob F's post:
  • Weasel1960
Reply to top
#55
This is absolutely your choice and I support you and your decision. NO SHADE. This is your project and you can manage it in any way you want. You have provided a great solution for people that don't want to make their own pcbs. I will however move on or stay at the current firmware. I wish you nothing but success.  

I was looking forward to contributing to the project but I will move on.
Reply to top
#56
Thanks, sorry to get your hopes up.
Reply to top
#57
I am sure its my lacking of understanding of the market. People that have saltwater tanks have disposable income, at least in my area. I would have bought the neptune system ( I didn't care about the money. its a one time purchase) but I wanted more control and wanted more hands on exp. What would make anyone buy this system over a system that has tons of money(ie. neptune) and is already fool proof? I know I may be an anomaly but i only bought this system because I wanted to be a part of a community.
Reply to top
#58
I hope you got my private message, I know you mentioned you were only buying the controller because software would be open source, check it out and we can figure something out, I'm sorry to mislead you.

It does appear a lot of reefers have plenty of money, it's not a cheap hobby however that's not everyone. The reason people choose me / reef-pi is mainly due to being affordable, I hear this all the time. Most people I cater too don't care to get into the code, they want reliable, easy to use and ideally it can do everything. The controller and reef-pi pretty much covers that. I feel reef-pi is quite proven and reliable otherwise I wouldn't push it, I think Ranjib has done a great job. Another reason out of many I'm making the app is I can't rely on reef-pi, if Ranjib stops good chance the project is over. Then a few Pi OS updates and it doesn't work and nobody can fix it. Reef-pi is growing though so this gets less likely as time goes by.

My original controller didn't work because price was $429 basically the same as the Apex and basically had no web access. Now it's under $250 to get semi equivalent with a lot more ports, my numbers are day and night different due to just that fact. If I could get some extra hardware I would like I can really increase the price to value ratio. There is definitely a good size market for me.

When I got my first aquarium I wanted a controller but Apex was out of my range, that's what got me into this. It was only going to be for me but people were liking it so I decided to sell them. My goal has and always will be to keep the prices as low as I can because I know there's many like myself. Even though reefing is very expensive it doesn't have to be. It also attracts a lot of freshwater folks.
[-] The following 2 users Like Rob F's post:
  • coaxman, Weasel1960
Reply to top
#59
Hi Rob:

I've been absent for a while but have kept up with the forum. I understand your reasons for charging a fee for your software and agree with them. I believe you will figure out a way to do that. Rest assured I will purchase it when it goes on sale although I plan to keep contributing to the reef-pi application. I wish you success...

Cheers,
José

Please post questions in the forum (not via PM) so that everyone can benefit from and contribute to finding solutions. Thank you.
[-] The following 1 user Likes JFReyes's post:
  • Dom59
Reply to top
#60
Hi Jose, thanks but there's noting to buy, anyone who has the controller will have access. Looking forward to seeing what you come up with reef-pi, it's nice to see your work rolled in now.
[-] The following 1 user Likes Rob F's post:
  • JFReyes
Reply to top


Possibly Related Threads…
Thread Author Replies Views Last Post
  How to Install Robo-Tank App Rob F 8 2,466 02-04-2024, 06:44 PM
Last Post: Rob F

Forum Jump:

Current time: 04-23-2024, 01:17 PM