My DIY HomeBrew Pool Automation Controller

jonpcar

Bronze Supporter
Jun 1, 2016
423
Gilbert, AZ
I would qualify my disorder as PA-OCD (Pool Automation OCD), haha. I haven't yet got into other home automation but that may be in the works after this project.

- 5 temperature is really needed!!!? Even clorine and acid tank?
No...but they are FREE and FUN. Bare minimum for me would be simply Pool Temperature to have as I move forward later with chemcial automation. But I am interested to see how burying my Chlorine Tank is going to keep it cooler (less degradation in the Arizona heat).

- PSI probes seems to be very useful. Could be great to have a digital one-wire version (like DS18B20) instead of analog.
Those (OneWire type) would be interesting, I don't know if they exist. Most important for me regarding the pressure sensors was making sure they were reliable. I don't want to mess with replacing and/or having issues with those. That is why I went with the used industrial sensors. Used industrial ones can be found on EBAY, its just a matter of if are they working or not, haha. I was "lucky", and they were cheap enough that I bought extras.
 
  • Like
Reactions: MyAZPool

jonpcar

Bronze Supporter
Jun 1, 2016
423
Gilbert, AZ
UPDATE

I have an issue with one of my Milone ETapes. Its electrical characteristics failed (degraded) after the first day. After some email exchanges with the company's owner, he agreed to have me send it back for analysis, which I did yesterday. I personally believe that the "teflon sleeve" that protects the "resistive ruler" has a leak in it, but that is something Chris Milone assured me that they pressure test before shipping. Hopefully their analysis will determine exactly what the failure mode was. The chlorine tank ETape so far has continued to perform way beyond my expectations. I'll probably post a graph or two when I collect more data.

Also, I have combined all my "sensor" programs (sketches) into a single photon program that outputs all (currently available) sensor data to my google spreadsheet at a regular interval. That interval is 10 seconds but in the longer term it probably will be something more like 5-10 minutes, or at any significant TBD change to any given sensor value.

However, I am going to busy with some other things over the next week, so not sure how much time I will be able to spend on this project.
 
Last edited:

jonpcar

Bronze Supporter
Jun 1, 2016
423
Gilbert, AZ
could be Milne Etape of the acid tank? it is acid resistant?
Yeah...we will see what Milone finds out. The teflon tape sleeve should not be impacted by acid. They will get the return on Thursday so I am going to have to put that part of the project on hold for awhile. In the meantime, the chlorine tank Etape has been awesome, here is a graph over the last few days.

It started out with about 4.75 gallons and you can see the nightly injections...which I am working on to get my pool to the right chlorine level. I've made so many changes in the past week that my system is out-of-whack. The graph says Tank% but it is actually Tank Gallons.

110997

I have found that since I "deployed" the new pool controller out at my pool equipment pad and attached ALL the sensors, that there is now some noticeable background noise, especially for the sensor A2D conversions. I hope to eventually clear some of that up by isolating some of the voltage reference sources and through use of some capacitors...currently I have zero on the board. OR, I may just take more samples and average them to clear out some of the noise.

Finally, I've decided to add valve position "sensors" so that I can know where my Jandy valves are at any time. I got this idea from @billmi on this thread:


I am implementing this a bit different from billmi, I am planning on adding micro-switches (on top of existing ones) inside my Goldline actuators as talked about on this post on another board.

 
  • Like
Reactions: MyAZPool

Katodude

Silver Supporter
Aug 22, 2017
402
West Palm Beach/Florida
So I am loving this thread and all the DYI automation threads. I figure I am about to get started myself. A few questions.

Why did you use a Particle Photon rather then a RaspberryPi?
Is there any actuator that you like better than another or will the Intermec (which seem to be the cheapest work?).
Definitely going to add valve position sensors since that is one of the issues that freaks me out. Really want to see what you end up working out here.
Has anyone tried connecting via a serial connector to a Hayward Pool heater. I would rather just send a signal to the heater on what temperature I would like it rather then power cycling the heater off an on.
 

jonpcar

Bronze Supporter
Jun 1, 2016
423
Gilbert, AZ
Why did you use a Particle Photon rather then a RaspberryPi?
I am not very familiar with other chips/boards (including the RaspberryPI) so I don't know how they compare. This is my first project to use any of them. Here is the thing I like most about the Photon now:

The ability to upgrade firmware remotely...right now the photon is out at my pool pad only connected via my wifi network. When I want to make a change to the firmware, I simply upload it over the wifi. Particle.io has all the tools in place to handle that automatically. I don't know if other systems/options have that capability. But I didn't even know about this when I chose the Photon.

Particle.io has the tools in place to allow remotely accessing the photon securely. Not sure what method you are gong to use with the RaspberryPi if you choose that...I am sure many options exist.

I originally chose the Photon because: 1) my son-in-law recommended it 2) I saw @bscuderi's project that used it and was impressed 3) I originally thought I was going to have a one-chip pool controller but my project has expanded way beyond the I/O of the photon 4) the photon is very similar to microcontrollers that I designed at Intel (peripherals, integration, etc) rather than a microprocessor which the RaspberryPi is more akin to. Now that I am familiar with the Photon, I am sticking with it, haha.

Is there any actuator that you like better than another or will the Intermec (which seem to be the cheapest work?).
Sorry, this will probably be a recurring answer for me...I only know about my actuators, I think I can make them work. By looking at physical specs/pictures, you might be able to determine if you can do something similar with other actuators.

Has anyone tried connecting via a serial connector to a Hayward Pool heater. I would rather just send a signal to the heater on what temperature I would like it rather then power cycling the heater off an on.
In my perusing, I don't recall having seen anyone talk about a Hayward heater (but I wasn't looking for it either and just might have overlooked it), this project is moving toward supporting other manufacturers besides Pentair, there might be some discussions about that there:


Also, in the discussions on the Desert Home site I posted earlier (Pump Control Section), I did see some talk about RS485 control Hayward chlorinators, don't know if anyone there talks about heaters. You might have to start some serious google searching, haha.
 
Last edited:
  • Like
Reactions: MyAZPool

Katodude

Silver Supporter
Aug 22, 2017
402
West Palm Beach/Florida
So based on what you said I did a little bit more research. It appears that most of the pool actuators (at least the ones I looked at) have microswitches at both ends of the cam. It looks like these microswitches will prevent the actuator for over turning. That’s going to make the programming much easier since I don’t have to time the actuator exactly.

Now it I want it to stop in a midway point I think I can use a reed switch to measure when the valve is in position and stop it there.

Ok, I am getting closer to pulling the trigger on this.
 

jonpcar

Bronze Supporter
Jun 1, 2016
423
Gilbert, AZ
Valve “Positioning”

kato...sorry to mislead you a bit about the actuators. You are right about all of them having the micro switches in them that turn them “off” when they reach one of the (usually two) set limit points. I am a bit of a control freak and the “additional” limit switches I am putting in the valves are for “confirmation” of position.

I like a control/feedback loop where I control something, and then I get feedback that its actually happened. Ex: send command to change the pump rpm - pump sends back new rpm/watts confirmation AND the PSIs throughout system change accordingly. Ex: send command to add acid - ensure AC power to stenner pump turns on AND watch acid ozs in tank going down (eventually: measure pH going down with probe). Ex: send command fo change valve position - the new micro switches confirm change, PSIs throughout system change accordingly.

Kato, in general, I believe valve positioning “changeability” (more than two positions) is probably not needed for a vast majority of systems, can I ask what you are planning to use it for? The intermediate positions on valves that you want to get can be done a few ways, that I know of.

1) the way you are thinking about, put in “feedback” in the form of reed switches that close when a valve handle reaches a particular spot. Your controller must read this “switch” and then would turn off the 24v power to the valve, stopping it at that position.

2) the valves move rather slowly and deteministically, @bscuderi at one time simply used a time delay to turn a valve a certain amount before turning off the 24v power to it. I suspect this would get you about about the same preciseness as putting in new reed switches as you are planning...and would be easier and more versatile. A few experiments would confirm this.

3) eventually I am planning on controlling ONE of my valve’s positions. I am planning on using PSI “feedback” to control where the valve is “turned to”. I will adjust the position of the valve until the PSI target is met. This is in the future for my In-Floor-Cleaning-System manifold.

4) if Pentair ever releases their firmware upgrade for intelliValves, you could put an intellivalve in your system and drive its position with a (hacked) RS485 code. Maybe they are not releasing it yet until they figure out how this can be thwarted, haha.

By the way, I did add the additional feedback micro-switches inside my valve actuators (on/off)...but it is a temporary solution as the switches I ordered were cheap and I don’t trust them. So I have ordered some OEM versions and will put those in when I get the chance.

I have not had any time to work on this project lately, and we are getting ready for a trip, so updates might be slow in coming. I am still waiting for Milone to determine what happened to my acid Milone Tape measure. That’s what I really want to “get in” before our trip.
 

Katodude

Silver Supporter
Aug 22, 2017
402
West Palm Beach/Florida
Hey Jon,

Thanks for the information, the information that you have been giving has been great so far. You are the one that actually tipped me off to the microswitches so nothing misleading.

For the 4 valves that I have to control only 2 currently use intermediate positions. I have one that separates the main drain from one of my two skimmers. But I suppose there is no reason that I should direct everything to just the skimmers anyway so not a big deal there. The second is the return to either pool or spa. In normal operation I have most of the water returning to the pool with a trickle going to the spa so that it has circulation. However, with automation I can periodically just dump a bunch of water into the spa a couple of times a day to make sure that it gets circulated. This has the side benefit of not having the trickle over the spillover and will reduce aeration which will help manage my pH. So I can probably live without intermediate positioning.

But if I still really want it I will do what my idea was initially and what you suggested is just turn the actuator for a set time to get to the position.

The other good news on the microswitches is that like you I don’t trust the position without feedback. So if you figure out how to read those microswitches let me know. Or the poor mans answer is just drive the actuators once a day to one position or the other and knowing that they will shut of at the extreme lets know where they are.
 

jonpcar

Bronze Supporter
Jun 1, 2016
423
Gilbert, AZ
Pool valve actuators are driven by a synchronous motor. So valve position vs time of operation is very linear. Probably as accurate as placing an extra limit switch.
Hey dschhlic, thanks for that info, it’s good to know and seems consistent with what I have observed by “playing” with those actuators.

Question...do you know if these type motors will endure a lot of movement? They seem to get warm quickly. What I had in mind is a change (partially back and forth) about every 30 seconds to implement a very fast In-Floor-Cleaning-System “sweep” of my pool. I could completely sweep the pool in less than 30 minutes rather than the current ~1hr...maybe just a pipe dream, because I wouldn’t want to burn an actuator motor over it.
 

dschlic1

LifeTime Supporter
Oct 5, 2007
606
Valrico, FL
That I don't know. I do have one on my solar heater which usually strokes back and forth several times a day. Recently the seals on the valve gave out, and I had to replace the cam inside and the cover. The actuator is still working.
 

jonpcar

Bronze Supporter
Jun 1, 2016
423
Gilbert, AZ
An Update...

I haven't had a lot of time lately but have managed a few things. I received the new ETape from Milone which I promptly plugged back into my acid tank. So far, everything looks good and solid. I haven't had a chance to calibrate it yet as I am waiting for the acid level in the tank to go down to negligible. The problem with the original ETape was traced to "not enough goop (my wording)" put on to one of the connections inside the head of the ETape and so the acid fumes did corrode it. I can't say enough about how happy I am so far with the chlorine ETape that I have had installed for a few weeks now. It has given very accurate readings of the chlorine tank level and distributions of chlorine that occur nightly. Ditto for the acid ETape for the few days it has been installed (although absolute levels are not yet calibrated).

I have connected and can read the "sensors" on my valves (to know position), my stenner pumps (to know whether they are injecting), and my pool light (to know if it is on). I am currently not doing anything with these values on the Photon itself although eventually that is the plan. I am saving all sensor data (temps, psis, rpm, watts, valve status, etc) into my google spreadsheet....every 5 minutes or when there is a "significant" change.

Finally, I have started hooking up my Android app into the solution. I now record all my chemical tests (FC, pH, TA, etc) via the app, which in turn sends it to the Photon (which keeps a small table of recent values), and then onto the google spreadsheet where I eventually will be doing a bunch of analysis. I have also started updating the status items of the Android app like chemical tank levels, temps, pump status, etc. I have not yet implemented any "control features" such as turning on the pump, lights, waterfall, stenner pumps, etc.

Unfortunately further progress will be interrupted by a rather long trip we are taking, so there will be no updates or progress once we leave. As I said, in one of the early posts...I am not in a hurry to get this project done, in fact, I don't think it will ever be "done", I'll probably continue to tinker with it long after I have all major functionality implemented.

For those thinking about using a DS18B20 probe for determining water temperature, I used this to "insert" it into my pipes (50mm version). Although I have to have the pump running to get an accurate pool temp, it has been right on the money ever since I installed it.

 

MyAZPool

Gold Supporter
Jul 3, 2018
986
Arizona
An Update...

I haven't had a lot of time lately but have managed a few things. I received the new ETape from Milone which I promptly plugged back into my acid tank. So far, everything looks good and solid. I haven't had a chance to calibrate it yet as I am waiting for the acid level in the tank to go down to negligible. The problem with the original ETape was traced to "not enough goop (my wording)" put on to one of the connections inside the head of the ETape and so the acid fumes did corrode it. I can't say enough about how happy I am so far with the chlorine ETape that I have had installed for a few weeks now. It has given very accurate readings of the chlorine tank level and distributions of chlorine that occur nightly. Ditto for the acid ETape for the few days it has been installed (although absolute levels are not yet calibrated).

I have connected and can read the "sensors" on my valves (to know position), my stenner pumps (to know whether they are injecting), and my pool light (to know if it is on). I am currently not doing anything with these values on the Photon itself although eventually that is the plan. I am saving all sensor data (temps, psis, rpm, watts, valve status, etc) into my google spreadsheet....every 5 minutes or when there is a "significant" change.

Finally, I have started hooking up my Android app into the solution. I now record all my chemical tests (FC, pH, TA, etc) via the app, which in turn sends it to the Photon (which keeps a small table of recent values), and then onto the google spreadsheet where I eventually will be doing a bunch of analysis. I have also started updating the status items of the Android app like chemical tank levels, temps, pump status, etc. I have not yet implemented any "control features" such as turning on the pump, lights, waterfall, stenner pumps, etc.

Unfortunately further progress will be interrupted by a rather long trip we are taking, so there will be no updates or progress once we leave. As I said, in one of the early posts...I am not in a hurry to get this project done, in fact, I don't think it will ever be "done", I'll probably continue to tinker with it long after I have all major functionality implemented.

For those thinking about using a DS18B20 probe for determining water temperature, I used this to "insert" it into my pipes (50mm version). Although I have to have the pump running to get an accurate pool temp, it has been right on the money ever since I installed it.

Hi jon
Thanks for the update.
I'm interested in the thermowell. Are you using the "Beer fermenter ds18b20 pt100 Homebrew Boiler 30mm 50mm 100mm 150mm 200mm 300mm 400mm 500mm (50mm)" ?
The thing that I took the most notice of is your comment regarding the "accuracy" The thermistors that come bundled with the Pentair automation system, imho are junk and I'm definetely interested in "upgrading".
Thanks much!!
r.
p.s. Like we talked to earlier in the year, let's try to get together when the temps will finally allow us to chat outside near our pool equipment comfortably. :p I'll buy lunch!!
 

RonsPlc

Gold Supporter
Silver Supporter
LifeTime Supporter
May 31, 2015
812
Gaylesville, AL
That's a whole bunch of update!... But...
The nagging question on my mind is just how much cooler your buried chlorine (aka bleach) is compared to outside temps.
 

jonpcar

Bronze Supporter
Jun 1, 2016
423
Gilbert, AZ
Hi jon
Thanks for the update.
I'm interested in the thermowell. Are you using the "Beer fermenter ds18b20 pt100 Homebrew Boiler 30mm 50mm 100mm 150mm 200mm 300mm 400mm 500mm (50mm)" ?
The thing that I took the most notice of is your comment regarding the "accuracy" The thermistors that come bundled with the Pentair automation system, imho are junk and I'm definetely interested in "upgrading".
Thanks much!!
r.
p.s. Like we talked to earlier in the year, let's try to get together when the temps will finally allow us to chat outside near our pool equipment comfortably. :p I'll buy lunch!!
r...I really do want to get together, I really want to see your intellicenter and pool equipment enclosure :)....it will have to wait again sorry. About the thermowell...these things are made to exactly fit the DS18B20 probes and allows you to change the probes out easily if there is a problem with a particular sensor. I screwed that thermowell into a threaded pvc connection (a existing PVC tee/cross) and then simply inserted the DS18b20 into the thermowell.

Those DS18b20 devices require some type of controller (photon, raspberryPi, arduino) to drive and then to record the data that is obtained from them. In other words, they are not direct replacements for other temperature sensors...like the type you have for intellicenter. I think it would be very difficult to find a way to integrate them into the intellicenter status reports.
 

jonpcar

Bronze Supporter
Jun 1, 2016
423
Gilbert, AZ
Ron, here is some temperature data. Burying the tank does reduce the swings but doesn't keep the chlorine as cool as I would like it too. Some caveats:

The placement of my ambient temperature probe (Ta = YELLOW) is not good..currently it gets hit by direct sunlight during parts of the day (why it shoots up to 115+), so ignore those peaks. I should just go out and temporarily fix this but haven't because this "sensor" is purely informational and I have a plan to run it through my wall (into my sister's yard) where it would be suitably shaded. I believe actual ambient temperatures have been topping out in the 107-110 degrees over the last few days.

The chlorine tank temperature is in RED (Tc), and has been slowly rising (corresponding to the ambient average temperature rising). It's value a couple weeks ago was about 88 degrees but you can see it has crept up to about 91 degrees Fahrenheit. So in general, it is about 15 degrees cooler than the ambient HIGH temperature. My plan (eventually) is to put a sprinkler drip into the tank hole to see if that will cool down the earth a bit more around the chlorine tank. That would have to be next summer.

My pool temperature (Tp) is in BLUE and has a couple "bulges" (1 positive and 1 negative) per day that correspond to when the pump is NOT running, and therefore not getting an accurate measure of the water temperature because the temperature probe is inserted in the equipment pad pipes. During those times, the recorded temperature migrates towards the ambient temperature (non-moving water in the pipes). My pool temperature has maxed out recently at about 94 degrees Fahrenheit.

Eventually, there will be some scrubbing of the data (either by the photon, the spreadsheet, or possibly both), For example, pool temperature is currently meaningless during the time the pump is not running.


113301
 
Last edited:

MyAZPool

Gold Supporter
Jul 3, 2018
986
Arizona
r...I really do want to get together, I really want to see your intellicenter and pool equipment enclosure :)....it will have to wait again sorry. About the thermowell...these things are made to exactly fit the DS18B20 probes and allows you to change the probes out easily if there is a problem with a particular sensor. I screwed that thermowell into a threaded pvc connection (a existing PVC tee/cross) and then simply inserted the DS18b20 into the thermowell.

Those DS18b20 devices require some type of controller (photon, raspberryPi, arduino) to drive and then to record the data that is obtained from them. In other words, they are not direct replacements for other temperature sensors...like the type you have for intellicenter. I think it would be very difficult to find a way to integrate them into the intellicenter status reports.
Jon,
Understand. I saw your post where you are doing another trip. I'm jealous. 😁 Hopefully, you're back once we are back down to the eighty's because I want to check out those waterfalls, the buried stenner and your home brew.. :p
Okay, understand about the probe. Darn. I was kind of excited about it.
Have a good trip.
r.
 
Last edited:

jonpcar

Bronze Supporter
Jun 1, 2016
423
Gilbert, AZ
Jon,
Understand. I saw your post where you are doing another trip. I'm jealous. 😁 Hopefully, you're back once we our back down to the eighty's because I want to check out those waterfalls, the buried stenner and your home brew.. :p
r, yeah...I was trying to get a lot of this stuff implemented before I left for the pool. Now its going to be a combination of my son/sister and the few monitors I have in place...haha.

So here is some interesting data from my google spreadsheet last night. Last night was the first night that I ran with “logging” my new valve position sensors and stenner pump feedback status. I may have a couple of issues shown by the data logging below. Note that the “monitors” are active LOW…when they are 0, the relay is supplying AC power to the corresponding stenner pump.
  • The red area indicates what seems to be both stenner pumps on at the same time (injecting acid and injecting chlorine) for about 8 seconds.
  • The yellow highlights seem to indicate that the chlorine stenner pump is randomly turning off for a few seconds during it's injection periord (this one was 29 minutes long)
I don’t know yet if these are “real” or if they are artifacts of some other issue I have with the setup. Currently, I think they are REAL, and I believe that my ORBIT sprinkler controller (which currently controls on/off of the stenner pumps) is giving me unexpected behavior (randomly turning OFF for a few seconds, and turning ON a little bit early between channels (chlorine #1, acid #2).

I will probably move the acid to channel #3 with a dummy #2 in the middle (for a minute or so) to fix the overlap issue. The random “turning off” issue is a bit more complex. I may simply monitor this to make sure it doesn’t become a bigger issue. Remember that the ORBIT sprinkler controller functionality will be replaced by my pool controller eventually…

Timestamp (Sheet)Chlorine Tank (gal)Chlorine Injection MonitorAcid Tank (gal)Acid Injection Monitor
7/31/2019 2:29:264.1711.21
7/31/2019 2:24:264.1711.211
7/31/2019 2:19:264.1711.211
7/31/2019 2:14:264.1711.271
7/31/2019 2:09:294.1811.30
7/31/2019 2:04:294.1711.350
7/31/2019 1:59:294.1811.360
7/31/2019 1:54:294.1811.370
7/31/2019 1:49:294.1711.380
7/31/2019 1:44:374.2111.390
7/31/2019 1:44:294.2101.390
7/31/2019 1:39:394.2601.41
7/31/2019 1:34:394.3601.41
7/31/2019 1:29:394.4601.41
7/31/2019 1:24:394.5501.41
7/31/2019 1:24:364.5511.41
7/31/2019 1:21:014.6201.41
7/31/2019 1:20:554.6211.41
7/31/2019 1:20:264.6301.41
7/31/2019 1:15:264.6701.41
7/31/2019 1:15:154.6711.41

NOTE: data is "logged" every 5 minutes unless there is a significant change which can force data logging at a rate of once/second. Stenner pump activation/deactivation is one of those significant changes that forces logging immediately.

Although my initial plan was to put current sensors on the stenner pump black AC (hot) wire in order to monitor whether or not they are drawing AC current (and therefore active), I ended up using an "extra" connection on the final AC relay (which are DPST - they have 2 connections) to implement a simple resistive pull-up/pull-down monitor of whether or not the final relay is “active” or not.

One of the two relay connections is for the black (hot, turn on) AC connection to the stenner pumps, and the other is used to ground a pin (that is weakly pulled up) on my pool controller MCP23017 chip. The photon reads this pin once per second to see if it the AC connection to the stenner pump,is active or not. I may keep this implementation even though I did receive those “AC current monitors” that I was planning to wrap around my stenner pumps black “hot” wire.
 
Last edited:

MyAZPool

Gold Supporter
Jul 3, 2018
986
Arizona
jonpcar
WOW. You are all over this! Impressive. (y)
I have to admit that some of the explanations went over my head (it doesn't take much :p)
Absolutely dig the data tracking. I hope that some of our "IntelliCenter" hacks will yield something similar at some point down the road. The data tracking and graphs in the IntelliCenter are very "elementary" and essentially useless at this point.

Very nice! Thanks for for taking the time to share.
r.