Thank you Keeno for covering my question in tonight GrowRoom YouTube chat (I love these by the way) at such short notice but the feedback was certainly worth it mate. Gives me loads to work on especially with GMO who will be fully on board by the end of this project or he gets his money back. By the way, did I mention this is all open source and totally free apart from the hidden hardware costs you may or may not invest in. I would love to know if anyone does ;O)
I wanted to post a topic to cover an idea I have had for a while which is mostly implemented and finished from a 'personal perspective' in that it is working currently to control my own GrowRoom with monitoring of the basics stats such as Humidity, Temperature, etc. while also being able to act on these 'events' by switching on/off equipment as needed. But my idea is to share this great shit with all of you because being able see and control your growroom from your phone is a wonderful tool to have in your 'Lazy Box'.
I don't want to waste too much time trying to explain the technology etc behind all I am going to be talking about in advance, nor the actual terminology I am going to be using so feel free to stop me at any point and ask for clarification on anything mentioned and I will return and clarify my words rather than trying to cover all topics in both a high and low level from the start. Make sure to ask anything you like, as this will also clarify the whole idea for everyone going forward and hopefully build up some sort of documentation along the way. The only dumb question is the one that wasn't asked.
So, basically I have this software that I have been writing for about 6 months now which is called 'Minty Hydro' and is available as an online demo (which is an old version now) but should give a good indication of where I am going with this:-
and the source code is publicly available via GitHub. This is still work in progress but if you check out the online demo using a PC browser you will see that it is quite functional considering there is NO SERVER SIDE to that demo - it all runs in your browser / mobile phone.
My initial design for this software was for the following requirements:-
- Works Offline - Internet is optional - just to stats backups
- Wireless control - less wires trailing is a good thing
- Scheduled control / Overrides based on input conditions - e.g. turn the heater off if it get above a certain temperature regardless of the built in heater thermostat.
- Automation via cheap remote controlled RF433mhz - control cheap devices such as extention leads, sockets, extract fans via -RF433 (you would be surprised how much remote stuff works on RF433 but I now also have support going in for IR - InfraRed as the Air conditioner requires this to remotely control it.)
- Cheap hosting / Offline hosting with Raspberry PI - Raspberry does me fine and the remote hosting is pretty much this thread idea so feedback will be welcome.
- Mobile Friendly to control the Grow Room - I still have bugs, don't get me wrong but even the old build that is available online is nearly mobile friendly
- Record history of all sensors and equipment- My current status with this is that it has been recording all stats since day one but I do not yet have charts to show these stats.
- Charts to show statistics etc.
Environment - this will basically show Spark line charts of the recent stats (but is clearly not finished) and if automated this will show real time stats otherwise it would show your last X updates to the forum in a chart.
Sensors, this page would be optional unless you have sensors that can feed back into the system. These can be simple sensors such as a BME280, DHT11, DHT22, doesn't matter as long as it communicates using serial or I2C protocols (I can look into ICAN but not supported as yet - because I have not hit the limit using RF as the main transmission protocol and I2C as the main incoming protocol). The water level sensors are very simple sensors (e.g. just connect two wires together to get a signal) but these are analog and use valuable resource pins on the hardware so I need to find a solution to these (which I think I do have but more on that later when we see about automated dosing and magnetic stirrers)
Levels / Ranges - these are your desired min and max levels for an optimum growroom environment - with automation these levels will trigger events based on either a high or low threshold - these levels will make more sense when we get to scheduling. Without Automation and using just simple forum updates these levels will trigger alerts in your charts or you history stats. etc. It is not all about the automation and more about the recording and analysis of the stats - the automation just allows you to not bother entering the stats. My plan is to support manual entry of everything to help the people that do not have automation or even any exact measurement. It will record what it is given and chart those with these levels being just a visual hint to yourself if you are on track or not.
I appreciate the actual ranges are way off, and stuff like that is exactly why I want other people invloved. What should the minimun PH value be hard coded to? I dunno? For me it would be 5.0 and no lower but the software is still in BETA and that is why it needs feedback from others.
Controls - these let you control all your hardware. Turn something on constantly, turn it off constantly, or let the schedule (more on that shortly) decide if it should be on or off.
Pumps - this section allows me to calibrate and control all the various pumps I use for recirculating, filling, draining, dosing, etc. These like the controls can be set to constatntly on, off, or controlled by the schedule with the added functionality of being able to dose a specific amount in .ml on demand if required.
Scheduling - This is very much still a work in progress but the plan is you drag out a period (hours, days, months, etc) and then decide which resource you want to control (light, pump, fan, etc) and select if that device is on/off or conditionally on or off. The conditional part is where the Sensors from above play a part in that we can say 'turn the extract fan on if the heat is high' - regardless off our other schedules. The events play in order but conditionals take precedence over all other events.
There are loads of different way to configure your schedule as this if of course important information and I wanted to make this as easy as possible so even Keeno can program this Timer ;o)
Been working on an agenda feature as well so I know what is important TODAY!
To be honest everything I have mentioned so far is Kinda a phase 2 for what you can use from that current software so I will post again shortly with the remaining two sections and where these fit into my plan for the GrowRoom420 side of things and to make it useful for everyone else who is not so willing to get into the automation side of things;
For those who are still interested in the automation side of things I still have plan for you lot and will come back to them after I have covered the basic bits ;o)