- INTELLICENTER USERS: Do not upgrade Intellicenter to 2.006. Rollback to 1.064 to use this application.
nodejs-poolController is an application to communicate and control your Pentair compatible pool equipment.
Equipment supported
See Changelog
Screenlogic can now be used as a direct connection point. If you feel that integrating an RS-485 adapter is a bit too much, then this is an option for you. The preferred method is still RS-485 as it is more fully featured.
The current version includes very tight intergation with relayEquipmentManager which allows for hardware control over your ancillary pool equipment (chemical probes, pumps, tanks, heaters, pumps, etc).
Starting with this version, all code will immediately be pushed to master
branch. The version of a next
branch for feature development will disappear.
Dashpanel Client Screenshot
This code requires a physical RS485 adapter to work.
This is only the server code. See clients below for web or other ways to read/control the pool equipment.
If you don't know anything about NodeJS, these directions might be helpful.
git clone https://github.com/tagyoureit/nodejs-poolController.git
(Alternate - not recommended - Download the latest code releasenpm install
in the new folder (where package.json exists). This will automatically install all the dependencies (serial-port, express, sockets.io, etc).npm start
.
npm start
will compile the Typescript code. You should use this every time you download/clone/pull the latest code.npm run start:cached
will run the app without compiling the code which can be much faster.npm start
will also create a config.json
file for your installation. If you need to modify any properties (e.g. the path to your serialport adapter, enabling socat, etc) then stop the app, edit the config.json
per the instructions below, and start the app again./data/*.json
files. For a very thorough walk-through, see this great thread on Trouble Free Pool. Thanks @MyAZPool.
Assuming you cloned the repo, the following are easy steps to get the latest version:
git pull
npm i
(not always necessary, but if dependencies are upgraded this will bring them up to date)npm run start:cached
then run npm run build
to compile the code.See the wiki. Thanks @wurmr @andylippitt @emes.
See the wiki.
To do anything with this app, you need a client to connect to it. A client can be a web application or Home Automation system.
Relay Equipment Manager is a companion app developed by @rstrouse that integrates standalone hardware control. Controls GPIO, i2c, and SPI devices including:
config.json
.NOTE: Existing integrations built of 5.3 or earlier WILL NOT WORK. They need to be upgraded to leverage 6.0.
Available for 6.x:
Need to be updated:
v6 adds all new configuration and support for virtual pumps, chlorinators (and soon, Intellichem)
See Changelog
rs485Port
- set to the name of you rs485 controller. See wiki for details and testing.portSettings
- should not need to be changed for RS485mockPort
- opens a "fake" port for this app to communicate on. Can be used with packet captures/replays.netConnect
- used to connect via Socat
netHost
and netPort
- host and port for Socat connection.inactivityRetry
- # of seconds the app should wait before trying to reopen the port after no communications. If your equipment isn't on all the time or you are running a virtual controller you may want to dramatically increase the timeout so you don't get console warnings.servers
- setting for different servers/services
http2
- not used currentlyhttp
- primary server used for api connections without secure communicationsenabled
- self-explanatoryip
- The ip of the network address to listen on. Default of 127.0.0.1
will only listen on the local loopback (localhost) adapter. 0.0.0.0
will listen on all network interfaces. Any other address will listen exclusively on that interface.port
- Port to listen on. Default is 4200
.httpsRedirect
- Redirect http traffic to httpsauthentication
- Enable basic username/password authentication. (Not implemented yet.)authFile
- Location of the encrypted password file. By default, /users.htpasswd
. If you have authentication=1
then create the file users.htpasswd in the root of the application. Use a tool such as http://www.htaccesstools.com/htpasswd-generator/ and paste your user(s) into this file. You will now be prompted for authentication.https
- See http options above.sslKeyFile
- Location of key filesslCertFile
- Location of certificate filemdns
- Not currently used.ssdp
- Enable for automatic configuration by the webClient and other platforms.app
- Application wide settings
enabled
- Enable/disable logging for the entire applicationlevel
- Different levels of logging from least to most: 'error', 'warn', 'info', 'verbose', 'debug', 'silly'packet
- Configuration for the nodejs-poolController. An application to control pool equipment. Copyright (C) 2016, 2017. Russell Goldin, tagyoureit. russ.goldin@gmail.com
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/