Pentair IntelliCenter Pool Control Dashboard Instructional Guide

tagyoureit

Active member
Jun 26, 2016
33
San Jose, CA
Pool Size
44000
Surface
Plaster
Chlorine
Salt Water Generator
SWG Type
Pentair Intellichlor IC-40
Hello,

Was anybody able to have a remote RS485, an EW11< that is configured in "client" mode, which connects to your socket port which then feeds the received data to /dev/ttyUSB0 ?

I tried to follow the instructions form Docker · tagyoureit/nodejs-poolController Wiki the "Docker socat example:" section but I get an error similar to:



when the socat command is executed:



I even tried to install socat on my OS, not in docker, and run manually the command - still not wrking

I'm looking to run socat in tcp-listen mode so that the EW11 can reconnect and push the data to socat port, instead of having NJPC connect to EW11 - since I see that NJPC doesn't reconnect if EW11 restarts, or there is a network issue.

Any help is appreciated.
This issue was likely fixed 5 days ago (Commands fail after temporary loss of RS485 connectivity · Issue #357 · tagyoureit/nodejs-poolController). Please try your original configuration again and if it persists open an issue in github.

In the grand scheme, Socat has it's own issue of reconnecting, so you are introducing new potential problems by adding a 2nd hop (njsPC->socat->Elfin). I don't recommend this.
 

Turbo1Ton

Gold Supporter
Dec 26, 2019
1,403
NE Oklahoma
Pool Size
14500
Surface
Plaster
Chlorine
Salt Water Generator
SWG Type
Pentair Intellichlor IC-40
You should be able to use them simultaneously. I have been for the past couple weeks. I just checked and Intellicenter seems to be down at the moment. I can't get to the web client. The app will only work by connecting to a local pool, not through the servers.

Another win for njsPC and dashPanel.

--Jeff
 
  • Like
Reactions: MyAZPool

silfa718

Bronze Supporter
Aug 4, 2020
92
Bradenton,FL
You should be able to use them simultaneously. I have been for the past couple weeks. I just checked and Intellicenter seems to be down at the moment. I can't get to the web client. The app will only work by connecting to a local pool, not through the servers.

Another win for njsPC and dashPanel.

--Jeff
Okay, my luck the Intelicenter was down the same time I checked it.
 

MyAZPool

Gold Supporter
Jul 3, 2018
2,063
Arizona
Pool Size
20500
Surface
Plaster
Chlorine
Salt Water Generator
SWG Type
Pentair Intellichlor IC-60
Agreed.
As @Turbo1Ton points out, both "should" be operational simultaneously. However, as many of us have come to realize, the reliability of the IntelliCenter Web Client is "marginal" on its best days.
Just one of many reasons why more and more IntelliCenter users depend on njspC/dashPanel as their "Go To" client.

According to https://uptimerobot.com, in just the first 4.5 days of this month, Intellicenter.com was down a whooping 5 and a half hours.

1638741816558.png

So much for "Server Reliability". Wherever those servers may reside. :p
r.
 

CMPLY

New member
Sep 22, 2021
1
Philadelphia, PA
Thank you, pulled the latest changed and created a new docker image, then reconfigured to connect to Elfin.
Would you be able to provide any help (example docker-compose.yml or how you created a new docker image) with your docker setup for connecting to the Elfin? I've tried to follow the Wiki instructions, but the njsPC container never starts on my Synology server (the error log basically is riddled with 'cannot find file').

My Elfin's configured, but I'm wondering if my setup (using a Synology server) fails because its restricting access to the serial/USB ports. Thanks!!!
 

snagytx81

Member
Jun 11, 2021
12
Houston/TX
Pool Size
16000
Surface
Plaster
Chlorine
Liquid Chlorine
Would you be able to provide any help (example docker-compose.yml or how you created a new docker image) with your docker setup for connecting to the Elfin? I've tried to follow the Wiki instructions, but the njsPC container never starts on my Synology server (the error log basically is riddled with 'cannot find file').

My Elfin's configured, but I'm wondering if my setup (using a Synology server) fails because its restricting access to the serial/USB ports. Thanks!!!

I gave up using socat, I'm using network sockets to get the data.

This is my running docker-compose.yaml - note that the yaml formatting is not valid - i don't know how to make it look nice in this forum

version: '3.7'
services:
poolcontroller:
container_name: poolcontroller
restart: always
ports:
- "4200:4200"
- "9229:9229"
volumes:
- ./poolcontroller/config.json:/app/config.json
- ./poolcontroller/data:/app/data
image: msmi/nodejs-poolcontroller
poolcontroller-dashpanel:
restart: always
container_name: poolcontroller-dashpanel
ports:
- "5150:5150"
volumes:
- ./poolcontroller-dashpanel/config.json:/app/config.json
image: msmi/nodejs-poolcontroller-dashpanel
depends_on:
- poolcontroller

I think you might be hitting blank initial config file. When you start the containers the first time the config.json files don't exist, hence the containers won't start.

You could start with:
version: '3.7'
services:
poolcontroller:
container_name: poolcontroller
restart: always
ports:
- "4200:4200"
- "9229:9229"
volumes:
- ./poolcontroller/data:/app/data
image: msmi/nodejs-poolcontroller
poolcontroller-dashpanel:
restart: always
container_name: poolcontroller-dashpanel
ports:
- "5150:5150"
volumes:
- ./poolcontroller-dashpanel/data:/app/data
image: msmi/nodejs-poolcontroller-dashpanel
depends_on:
- poolcontroller

Then start the containers, then login into the containers and copy `/app/config.json` to `/app/data/config.json` in both containers. Then get out and copy the config.json files into `./poolcontroller/config.json` and `./poolcontroller-dashpanel/config.json` and use my initial docker-compose.yaml file. You might be able to pull the config files some other way, but in the end you need to have valid config files under `./poolcontroller/config.json` and `./poolcontroller-dashpanel/config.json` before you can use the first docker-compose.yaml file.

Once you have everything running you need to configure njsPC to pull the data from elfin.

I hope this helps.
 

thetekgeek

Bronze Supporter
Jun 8, 2018
304
Nebraska
I'm experiencing an odd issue with a new installation of the poolController and dashPanel. I followed this guide through the installation process. Upon initial startup and connection to the poolController-dashPanel, I got the error saying that it could not find a server and the Easytouch was not recognized. I checked the config.json file in the dashPanel directory and found that the key "ssdp" was misspelled "sspd", and the value was set to True. I checked the defaiultConfig.json file and the key is misspelled there too.

I edited the config.json file to have what I believe to be the correct key "ssdp" : True and restarted the pi. After starting everything back up, I still had the error, so I checked the config file again and it had reverted back to "sspd" : TRUE. I edited it again, saved and rebooted again. I decided to start the dashPanel using the command npm run start:cached instead of npm start&. That worked! I was able to find the server in the connection tab of the dashPanel and I was able to fully communicate with the EasyTouch. As a test, I rebooted again and started the poolController and dashPanel manually using npm start&. At this point, the server was not able to be found again. However, I checked the config.json file and it had not reverted back to the misspelled "sspd" key. At that point, I checked to make sure that the pi was listening on port 4200 using sudo netstat -tulpn | grep LISTEN and sure enough it is listening on the port. I'm trying to reconcile the difference between starting using npm start& vs npm run start:cached and the server's ability to be found by the dashPanel. Any guidance? @MyAZPool
 

Enjoying this content?

Support TFP with a donation.

Give Support

rstrouse

Well-known member
Jun 17, 2020
556
California
Discovery (ssdp) from dashPanel is not required so while we had some extra large fingers typing the defaults for the key it has no bearing on your issue. I assume that you were seeing "Connection Error" in the dashPanel header. This means that it cannot find the njsPC server. The difference between npm start and npm run start:cached is that the former recompiles the typescript code.

So a couple of things that may be of assistance. Do you have an ip reservation set for the raspberry pi running njsPC? If you do not you should set one up and use the ip address instead of the machine name. I have seen the Xfinity routers stop resolving local DNS just out of the blue. Not all machines and not all network interfaces. Using the DHCP reservation and IP address seems to resolve it.
 

thetekgeek

Bronze Supporter
Jun 8, 2018
304
Nebraska
@rstrouse Thank you very much for your reply. I did not have an IP reservation for the PI, I have added one to my router. I'm still seeing similar behavior. When I start the poolController and dashPanel using npm start&, I am unable to communicate with the Easytouch through the dashPanel. When I start them using npm run start:cached, everything works. I'm doing some more testing to see if I can better understand what is happening.
 

thetekgeek

Bronze Supporter
Jun 8, 2018
304
Nebraska
I was able to solve my issue. I figured I would document it in case anybody else experiences this.

I found that the poolController node was actually shutting down when the ssh client got closed, even though it was being started using npm start &. I came across a thread on stackoverflow where a similar issue to mine was being discussed.

I solved the issue by installing forever: sudo npm install forever -g

I then edited the rc.local file to use forever when starting:
fi
cd /home/pi/nodejs-poolController-dashPanel/
forever start ./dist/app.js

cd /home/pi/nodejs-poolController/
forever start ./dist/app.js
exit 0
 

rstrouse

Well-known member
Jun 17, 2020
556
California
Oh that will do it. The other thing you can do is use pm2. That is typically how I run mine. I then use remote desktop to connect to the pi whenever I need to use the UI or a console.
 

the_bigham

New member
Aug 9, 2018
2
Timbuktu, ID
Howdy,

Great info here, thank you! Very much encourages me to give this a go...

So my IntelliTouch board seems to only have two COM ports and both are in use:

- One (on right) goes to the MobileTouch2. The battery died in it a while ago but it works fine from the cradle (no desire to buy a new proprietary battery given the price and spotty reviews around longevity).
- Not sure where the other (on left) goes as it disappears into an underground conduit. I think it goes to 'the octopus' for the in-floor cleaners or the LED pool lights (there are 5).

Given I apparently only have 2 COM ports, can I wire the RS 485 adapter in parallel to the MobileTouch2 or do I have to retire/sell the MobileTouch2 in favor of the RS 485 adapter?

COM PORTS.jpg
 
Last edited:

rstrouse

Well-known member
Jun 17, 2020
556
California
Yes you can double up the wires into the comm port. Make sure you are making good connection into the port. As for the battery you can make your own pack since these days you can source the soft side cells. If you get cells of the same spec. Amazingly, the price for the OEM pack has come down to $250 from over $400.
 
Last edited:
  • Like
Reactions: the_bigham

ogdento

Bronze Supporter
Mar 30, 2015
886
Chico, CA
thank you guys for this awesome system!

dumb install question... i see in the nodejs-poolController changelog that node12+ was added in v6.0... but since node 12 is end of life, do you recommend sticking with 12 or should we be using 14 or 16? thanks!
 

rstrouse

Well-known member
Jun 17, 2020
556
California
It will do just fine with node v14. The reason why we specifically called out node 12 back then is because they hosed the transition for serial ports with v12 for a while and didn't fix it until a later stable in v14. Had us pulling our hair out. I haven't done any testing on v16 yet.
 

Enjoying this content?

Support TFP with a donation.

Give Support