Pentair IntelliCenter Pool Control Dashboard Instructional Guide

Go to the repository and submit an issue. Are you by chance running v2.x of the IntelliCenter firmware. It is a nightmare.
Fortunately I have avoided those issues by being too busy with the new baby to realize there was a "latest and greatest" from our friends over at Pentair until after everyone here told me what a train wreck it was lol now that she's well on her routine, I'm back to tinkering in the evenings...

I just removed both directories and reinstalled them from the repository on the off chance it was having some kind of one-off issue - but it continues to "detect" intellitouch. However, this time it found Valve A (before it had only found B and Intake/Return). It continues to fail upon requesting intellitouch configuration. Really strange.

Should I instead connect into RS485-B, which is the COM port that the board for the pumps are plugged into? I figured since RS485-A was entirely unused, it would make sense to just use that one...
 
The comm port doesn't matter. What seems to be going on here is the signature bytes coming from the OCP are telling us it is IntelliTouch. Submit an issue on the github repository with a replay capture so that we can see what the panel is responding with. I will also be able to tell which firmware you are currently running. You should be on 1.064.
 
@rstrouse
Yea, that sounds just like what happened to me back in July of last year when I tried out that firmware beta version that wrecked my njspC. It then thought I had an i7+3. What a mess that was. Thanks again for saving me and my njspC back then. :goodjob:
r.
 
I am extremely embarrassed to admit that, after triple checking the firmware - it WAS 2.06. Unless my wife thought she was being helpful or I had one too many and completely forgot I updated it, I have no idea how that happened. Does Pentair automatically apply firmware updates?

I went back to the previous version and it immediately recognized Intellicenter. Sincerest apologies to everyone on this thread who got notifications because of my ignorance - I should have checked that first and just really thought it was a non issue.

However, I now get "Requesting IntelliCenter configuration," then "Queued 73 configuration items," then I get "info: This message was not processed" which points to Constants.ts line 253 "return new date(......" etc

RangeError: Invalid time value
at Date.toISOString (<anonymous>)


RPI does have the correct time and so does the intellicenter panel. It won't go past this step for some reason. Should I go submit an issue on github, or is there something obvious I'm missing?
 
Last edited:
Because the error appeared to be related to importing schedules, I just went ahead and factory reset intellicenter to start fresh - it then configured without issue. Thanks so much and please let me know if there's a beer fund for the developers I can contribute to. I'll work on getting my schedules and settings back, but I'm hoping to get some insight into my primary goal in setting this up: I want to use the air sensor's temperature status in relation to the water to determine when to actuate valve A (solar).

This is because my board's solar sensor is broken. Even though it was 12ga burial grade landscape wire, it got sliced by debris on the roof during hurricane Ian, which seemed to cause a permanent short of the board's "solar" sensor terminals - so that it sees near-zero resistance and believes solar should always be on since the roof is an infinite temperature. When connecting the sensor, you can actually watch it go to 100, 500, 800, and then "ERR". I have tested the sensor with my multimeter, and have confirmed the same behavior is observed regardless of which sensor is connected. I have the solar sensor connected to the air sensor terminals (which reads accurately), since the purpose of that is just freeze protection.

I've just turned the solar actuator into a standard valve and scheduled it from 11am until sunset. It hasn't gotten beyond the high 80s since then, but now that we're getting into the warm season - I do actually need temperature control to keep the pool from practically boiling with solar always on during the day. I'm familiar with basic programming concepts - any insight about how to set up my own solar actuator code based on the air sensor? Something like this that runs as some sort of cron job every 60 seconds:

if (waterTemp < setTemp)
---{
---if airTemp >= (waterTemp + 8)) //turn solar on when the roof (airTemp) is at least 8 degrees greater than the water
------{
------ValveA = 1
------}
---else
------{
------if airTemp <= (waterTemp + 4) //turn solar off only once the roof (airTemp) is within just 4 degrees warmer than the water - i.e. prevent short cycling
---------{
---------ValveA = 0
---------}
------}
---}
else
---{
---ValveA = 0 //turn off solar if we hit the desired temp
---}
 
You can do that with the Rules interface in njsPC. You can also take the solar heater control away completely from IntelliCenter. However, a short on that sensor should not destroy the sensing circuit. There should be ~10k of resistors connected to one side of those pins. It sounds like the divider circuit needs a new resistor or two.
 
You can do that with the Rules interface in njsPC. You can also take the solar heater control away completely from IntelliCenter. However, a short on that sensor should not destroy the sensing circuit. There should be ~10k of resistors connected to one side of those pins. It sounds like the divider circuit needs a new resistor or two.
Apologies for such an elementary question, but where do I access the "Rules interface" to work on this? I read the readme and tried to search the forums, but can't find a clear place to start. I got into node-RED, but I don't even know where to start working to pull in the valve, water sensor, air sensor, and set temp. Is there a simpler way to do this, given I don't really need complex flows but just to set the solar valve.

I have everything else set back up - circuits and schedules. The speed that this operates is so unbelievably refreshing. It's mind boggling that intellicenter is so clunky verses this! I got a cheap android tablet to mount on the pool deck column for guests to use - very cool.
 
Just had another idea that is absolutely unnecessary but would take it to a whole 'nother level:

Heat transfer efficiency is greatest with the smallest temperature differential, right? So bigger heaters recommend more GPM to run water through faster to reduce that differential between pool water and heated water.

So what if we took that principle and created a variable speed solar controller? With a new water sensor on the returns, we increase the pump speed until the differential between heated water and pool water drops to a certain target. I have 10 heliocol with a recommended flow of 5-7gpm - but that's only because maximum efficiency is in that range during the hottest part of the day. So let's instead say we always shoot for a differential of no more than 10 degrees (or whatever makes sense). In the morning sun, the pump might run solar as low as 30gpm - and in the heat of the day, we might set the max to 65gpm (or whatever makes sense as a balance of electric/solar efficiency). It would simply ramp up the pump until (return Temp - water Temp <= 10).

I bet this would turn out to be cheaper than running them at 50gpm for all 8 hours, but would actually be more efficient - especially at the hottest part of the day.

Obviously unnecessary for what is probably a minimal overall efficiency gain - but seems like a neat concept idea. I'd put it together just for curiosity sake - then go back and forth between traditional and variable speed every other day for a week or so to compare electric usage and heat gain as a proof of concept.
 

Enjoying this content?

Support TFP with a donation.

Give Support
Apologies for such an elementary question, but where do I access the "Rules interface" to work on this? I read the readme and tried to search the forums, but can't find a clear place to start. I got into node-RED, but I don't even know where to start working to pull in the valve, water sensor, air sensor, and set temp. Is there a simpler way to do this, given I don't really need complex flows but just to set the solar valve.

I have everything else set back up - circuits and schedules. The speed that this operates is so unbelievably refreshing. It's mind boggling that intellicenter is so clunky verses this! I got a cheap android tablet to mount on the pool deck column for guests to use - very cool.

There are a few links in the discussions section on the repository. Essentially, the rule interface triggers events you can process using Javascript.

 
Hey Folks. I only use my Pi for the pool control setup outlined here, and for my home generator as well. Otherwise, the Pi just sits and does it stuff 24/7 without any help from me. I do occasionally log in and update the software, which I did recently, and now when I try to use the pool controls via a web browser, I get the error message in the pic below. I've re-started the Pi, and have also re-started the Pentair control panel, but still have the same error. Lucky me, I did a backup of the whole Pi software to a 2nd micro card, so putting it back in and getting back up and running was super easy. For now, all is well.

Back at my updated software, I did go to the Pi Configurations and then to the interface tabs, but what is turned on with the new software is the same as with the old. Guessing this is an easy fix(unless something in the update breaks the Pentair software)

But I'm curious how do I 'fix' this problem with the latest version of the Pi updates and open Comms port 0?
 

Attachments

  • Screenshot 2023-04-27 at 7.23.49 PM.png
    Screenshot 2023-04-27 at 7.23.49 PM.png
    31.7 KB · Views: 6
Hey Folks. I only use my Pi for the pool control setup outlined here, and for my home generator as well. Otherwise, the Pi just sits and does it stuff 24/7 without any help from me. I do occasionally log in and update the software, which I did recently, and now when I try to use the pool controls via a web browser, I get the error message in the pic below. I've re-started the Pi, and have also re-started the Pentair control panel, but still have the same error. Lucky me, I did a backup of the whole Pi software to a 2nd micro card, so putting it back in and getting back up and running was super easy. For now, all is well.

Back at my updated software, I did go to the Pi Configurations and then to the interface tabs, but what is turned on with the new software is the same as with the old. Guessing this is an easy fix(unless something in the update breaks the Pentair software)

But I'm curious how do I 'fix' this problem with the latest version of the Pi updates and open Comms port 0?
You must update nodejs to v16+.
 
I'm interested in this because the Android Screenlogic app is complete garbage compared to the IOS app, and I hate having to buy an iPad to properly control my pool.
If I'm reading the instructions and thread correctly, since I already have the Easytouch controller with the protocol adapter, then all I need to do is connect the RS-485 from the protocol adapter to the RPi to satisfy that requirement. The protocol adapter is connected to the Wireless adapter with the RS-485 currently, so can I just add the wires to the terminal block on the wireless adapter or the protocol adapter? I would prefer to maintain the screenlogic app usability in addition to the nodejs controller.
 
Hey all,

I followed the guide and I am stuck at getting the control panel and dashboard to start at boot. I am following the PM2 method, and cannot get it to work. When I run pm2 log, I get the following error:

PM2 | Error caught while calling pidusage
PM2 | TypeError: One of the pids provided is invalid
PM2 | at get (/usr/lib/node_modules/pm2/node_modules/pidusage/lib/stats.js:78:23)
PM2 | at pidusage (/usr/lib/node_modules/pm2/node_modules/pidusage/index.js:30:5)
PM2 | at Object.getMonitorData (/usr/lib/node_modules/pm2/lib/God/ActionMethods.js:60:5)
PM2 | at tasks (/usr/lib/node_modules/pm2/lib/Worker.js:150:9)
PM2 | at Domain.<anonymous> (/usr/lib/node_modules/pm2/lib/Worker.js:193:7)
PM2 | at Domain.run (node:domain:389:15)
PM2 | at Timeout.wrappedTasks [as _onTimeout] (/usr/lib/node_modules/pm2/lib/Worker.js:192:7)
PM2 | at listOnTimeout (node:internal/timers:559:17)
PM2 | at processTimers (node:internal/timers:502:7)
Here is the output of the pm2 ls command:
│ id │ name │ mode │ ↺ │ status │ cpu │ memory │
│ 0 │ REM │ fork │ 0 │ stopped │ 0% │ 0b │
│ 1 │ dashPanel │ fork │ 0 │ online │ 0% │ 0b │
│ 2 │ njsPC │ fork │ 0 │ online │ 0% │ 0b │
I thought the log error was related to REM, since I don't have that installed but I also don't have a reference to it in the ecosystem config file. I can get everything to work manually by running npm start in both directories after boot.

I verified the ecosystem script points to the correct home directory since I don't use the "pi" user, but other than that the rest of my setup is identical to the instructions found here: PM2 Setup

Any help would be appreciated.
 
I LOVE this whole system - such a massive difference in usability for us. However, I'm running into a strange bug - accidentally tried to add a 17th circuit group and obviously I got an error. However, the blank circuit group will not go away. I've tried reloading config, restarting nodejsPC, restarting intellicenter, reloading config after that. I've tried deleting one of the 16 and renaming the blank one to match the one I deleted - all that did was push a blank one before it (see below).

This does not appear in intellicenter.

Any suggestions?
 

Attachments

  • CropperCapture[1].jpg
    CropperCapture[1].jpg
    34.6 KB · Views: 3
Go ahead and create an issue on github. It looks like we didn't try to stop you on the 17th group. This is simply because the poolState.json and poolConfig.json still contain the entry. We were nice enough to stop it if you try to delete it though. I can walk you through removing it from these files and we will add some restrictions with IntelliCenter panels to cool the zeal at 16.
 

Enjoying this content?

Support TFP with a donation.

Give Support