Custom component: Pentair IntelliCenter integration

Finally got a chance to commit to GitHub the Pentair integration that I’ve been working on for a couple of months… it has been very reliable for my install but since each pool configuration is unique, your mileage may vary. Would love to hear how it works for other systems…

Still have some polishing (doc, unit tests and a few additional features) to do but it would help to have a few other “customers” to find issues and suggest improvements.

Plan is to eventually publish as a core integration but for now, installation is thru hacs, custom repo at https://github.com/jlvaillant/intellicenter

4 Likes

Happy new year!

Glad to annouce a new (extended) version of the integration with:

  • added proper handling for English vs Metric setting
  • added support for multiple heaters per body of water
  • added support of the IntelliChem chemistry unit
  • added support for light effects for light groups (if applicable)
  • added a binary sensor for each schedule
  • added Vacation Mode switch
  • added binary sensor for tracking usage of individual heaters
  • significant optimizations at the protocol level

If already installed with HACS you should be offered to upgrade. Otherwise URL is the same Intellicenter Custom Component

3 Likes

Excited to see a native custom integration, thanks Jean-Luc! I just pulled all my Intermatic pool controllers since Intermatic is completely proprietary and not willing to share anything about controlling even their basic pool control units. I tried. A shame, since I would have written a Home Assistant integration for their units. Looking forward to moving on with Pentair equipment, plus the IntelliCenter is such a great unit.

Never heard of Intermatic… If they do have a IP address, an integration could be written and I’m happy to help! This said, Intellicenter is definitely a “modern” system in the sense it’s got full IP connectivity and a fairly straightforward protocol. Now that’s just saying that Pentair is only about a decade behind :wink:
When you get your system upgraded, the good news is that the integration is now in the HACS default store :slight_smile:

@jvaillant Do you know what data your able to pull from an InteliChem? I am in the middle of a pool build and considering add one.

So far this integration works awesome. Still finishing wiring everything up and repairing some plumbing, but so great that integration just discovered all the existing setup and created entities. Thanks!

sorry for the late reply…

from an IntelliChem you should get the current ph level, ORP level, ph tank level and ORP tank level

Thank you so much for creating this! I’ve followed all of the instructions, it asks me to connect to my local pool (confirmed the IP), it says successful but it never creates any entities or anything after that. Is there another step that I may be missing?

This is nothing short of awesome. Everything just worked for me. Using the light entity card for the pool lights just works, although if they could get icons in the effect_list display that would be even better (different integration).

The heater is the only thing I found that could use an improvement. I first manually turned the pool heater on (not from schedule). The intellicenter web page said Heater Status on, but scheduled as off on the Home tab. As far as I could see there is not an entity to see if the heater is on if manual, not by schedule. Granted, I’m not sure when in a real world scenario this would be an issue as I would normally only run the heater by schedule, but the perfectionist in me thought it would be worth mentioning. I expected the gas heater entity to do this, but it was not on when turned on manually. It is on when on by schedule.

Anyway, thanks much again on doing this.

Yes, I agree the heater thing can be a little tricky but it’s kind of due to the underlying system. Assuming you are talking about the pool, only when the pool circuit (switch in Home Assistant) is on, does the heater control has an impact, The Gas Heater entity (if that’s what you have as opposed to Solar or Hybrid) is a binary sensor telling you the heater is actually burning (ie on). If the pool is on (which means the pump associated with it is running) and the water temperature is lower that the heater setting, the heater will be on (as well as the Gas Heater entity). If the water temperature is higher that the setting the Heater will be idle and the Gas Heater will turn off (potentially with a slight delay for cooling down). Turning the Heater OFF will basically say “don’t heat the water no matter what”, Turning the Pool circuit off will shut down the pool heater off implicitely. A SCHEDULE with a “heater on” setting will apply whatever temperature is associated with it and set the desired temp for the Home Assistant value to that setting.
I have a bit of that problem as, while I was making sure the integration worked in both metric and US units, the Pentair somehow decided to set my pool temp to 27 degrees and I am not able to change that in the IntelliCenter UI.
I don’t think there is a way to know that the heater is set by HomeAssistant vs the IntelliCenter schedule. At the end of the day it is the same attribute on the same object in the Pentair code…. Hope this helps / is clear(ear).

You might be bumping into a problem that have been raised on github. I will push a new version next week that hopefully will work for you. Thanks for your patience.

I am getting everything else but none of the intellichem readings? Except I do get sensor.intellichlor_1_salt

The heater thing still exists for me, but only when I manually fiddle with it. To me this isn’t as much concern as there really is no reason to manually turn it on/off. It works as it should by schedule.

I did notice I get errors occasionally logged.
2021-06-11 10:02:53 WARNING (MainThread) [custom_components.intellicenter.pyintellicenter.controller] CONTROLLER: error 400 : {‘command’: ‘Error’, ‘messageID’: ‘9163c3f5-fd79-4ae3-9e59-2742f4873114’, ‘response’: ‘400’, ‘description’: ‘ParseError: unexpected end of input’}

I turned on your debug logging and they always come right after a pong response but not every response, maybe every 1 out of 4 or 5. I looked at debugging this myself, but its just the controller generating this message. Perhaps it doesn’t like the ping message? Might have something to do with wifi connectivity, wish we could directly connect and use this Engenious wifi adapter. My pool controller sits maybe 10 feet from my router (it is indoors).

I get the same controller error and mine is hard wired not wifi. As mentioned, I think its just the ping