Pentair IntelliCenter Pool Control Dashboard Instructional Guide

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.
 
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
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.
 
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.
 
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!!!
 
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.
 
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
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.
 
@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.
 
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
 
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:
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
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!
 
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