Quick Start Guide - tagyoureit/nodejs-poolController GitHub Wiki

Below are some instructions on how to get started using nodejs-PoolController and dashPanel. The software supports a wide variety of operating systems and platforms so choose the platform that makes sense for your environment and the equipment you would like to control. While most users use a Raspberry Pi to host the software, it is not required for njsPC or dashPanel. The poolController and dashPanel will run the same on any of the supported OSs. If you are using REM for hardware control however, it is only supported on the Raspberry Pi, BeagleBone Black, or Orange Pi.

Supported Commercial Automation

nodejs-poolController will work with your existing pool automation to extend it or simply give you a better user experience. When an existing master controller is detected for your pool nodejs-PoolController will simply act as another control panel on your system. If one of these do not exist it will install as a master controller named Nixie to take control of the supported equipment. To communicate with any of the Pentair automation systems you must install an inexpensive and readily available RS485 adapter then make a two wire RS485 connection to the RS485 bus.

  • Pentair EasyTouch (all models)
  • Pentair IntelliTouch (all models)
  • Pentair IntelliCenter (all models)
  • Pentair SunTouch (all models)
  • AquaLink (Supported using an interface Aqualinkd)

** NOTE: You cannot configure the hardware for AquaLink or SunTouch using nodejs-poolController. However, system status and control is available.

After you install the software and connect the two wire RS485 port to the outdoor control panel (OCP), nodejs-PoolController will interrogate the current setup on the OCP to configure the software for your pool. You will see your defined circuits, pumps, heaters, valves, chlorinators, and chemistry controllers. You can then control your automation system using any of the installed controllers. nodejs-PoolController simply becomes another controller on the automation system.

No Automation

If you do not have one of the listed automation systems above you are not out of luck. nodejs-PoolController can operate as a standalone system. This system is called Nixie and you can configure it to have as much automation as you like. Here is a link that describes building a full blown DIY pool automation system using this software and off-the-shelf components. What is described here is not a shoestring implementation using the suggested equipment. However, you can install as much of it as needed for your automation. DIY Standalone Nixie Pool Controller

What are the Components?

The entire pool control solution is made up of two primary pieces of software. These are nodejs-PoolController and nodejs-PoolController-dashPanel. nodejs-PoolController is central hub for your pool controller. It is responsible for communicating with your pool equipment and any other software that needs to know about the pool. dashPanel is simply a web server that is used to provide a human user interface to the nodejs-poolController server. This means that you can install nodejs-poolController and nodejs-poolController-dashPanel on two completely unrelated hardware devices.

Platform OS Support

The software is supported for the following operating systems. You can mix or match the hardware that you install the hardware components as long as there is network access between them.

  • Raspberry Pi OS
  • MacOS
  • Windows 7-11
  • Linux

Find the section related to the OS you are installing on to get instructions on setup and configuration.

Software Prerequisites

There is really only pre-requisite software package required to run nodejs-PoolController. This is the Node.js runtime and is used by all the components of the solution as the engine for the software. Node.js is a runtime built on Google Chrome's Javascript engine. It provides the cross-platform capabilities as well as all the hosting functionality.

Among the recommended pre-requisites is a piece of software called Git. Git is very convenient for installing and updating the software components. Since you are reading this it is likely you have had some exposure to the open source software repository which is hosted on GitHub. Git is simply the utility used to securely update your software when you ask to update it. It does not push anything to your computer or modify the operating system in any way.

  • Node.js v16+
  • Git

The installation instructions are different for each operating system so find the quick start section that relates to your OS below.

Raspberry Pi Quick Start

On a Raspberry Pi it is a good idea to install a remote desktop application such as Remote Desktop in Windows or VNC for other platforms. Search the web for current installation instructions for either of these two software packages for the Pi.

Follow the steps below to install the prerequisites and software.

  1. To get started on a Raspberry pi it is a good idea to update your OS.
    To do this open a command prompt and run the following command.
sudo apt update
  1. Install Git. If you have already done this you can skip this step. From the command prompt run the following command.
sudo apt install git
  1. Install Node Version Manager. This is the most direct way to install and manage Node.js versions on a Raspberry Pi. From the command prompt run the following command. After you run this script close the command prompt.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
  1. Exit the terminal and restart the terminal session for NVM to be recognized in the environment.

  2. Install Node.js From a new command prompt window use the following command to install a supported version of Node.JS as of this writing the software has been thoroughly tested on versions 16.x to 18.x of the node platform.

nvm install 18

Pool Controller Components

Install the packages you need for your installation. You can install all of them on the same platform or install the pre-requisites above on multiple platforms and choose the software you would like install on this pi. Once the software is installed you may perform the update procedure to download and install new versions.

nodejs-poolController

cd ~
git clone https://github.com/tagyoureit/nodejs-poolController.git
cd ~/nodejs-poolController
npm i

nodejs-poolController-dashPanel

cd ~
git clone https://github.com/rstrouse/nodejs-poolController-dashPanel.git
cd ~/nodejs-poolController-dashPanel
npm i

relayEquipmentManager

cd ~
git clone https://github.com/rstrouse/relayEquipmentManager.git
cd ~/relayEquipmentManager
npm i

Optional Software

It is a good idea to install PM2 on the Raspberry Pi. This will run your poolController components any time the Raspberry Pi is restarted. To install PM2 follow the instructions in the wiki for PM2 Installation

MacOS Quick Start

To get started on using nodejs-PoolController and its associated packages you will first need to install the pre-requisites.

  1. Install Git There are several ways to install Git on a Mac. The easiest is probably to install the Xcode Command Line Tools. On Mavericks (10.9) or above you can do this simply by trying to run git from the Terminal the very first time.

  $ git --version   If you don’t have it installed already, it will prompt you to install it.

  If you want a more up to date version, you can also install it via a binary installer. A macOS Git installer is maintained and available for download at the Git website.

  1. Install Node.js You can find install instructions for your MacOS version at Nodejs.org. Use the installer for version 18.x.x.

nodejs-poolController

cd ~
git clone https://github.com/tagyoureit/nodejs-poolController.git
cd ~/nodejs-poolController`
npm i

nodejs-poolController-dashPanel

git clone https://github.com/rstrouse/nodejs-poolController-dashPanel.git
cd ~/nodejs-poolController-dashPanel
npm i

relayEquipmentManager

** Note: REM can be installed on Mac for testing/mocking/emulating purposes.  
It will only control hardware on a Raspberry Pi/Beaglebone/OrangePi. **

cd ~
git clone https://github.com/rstrouse/relayEquipmentManager.git
cd ~/relayEquipmentManager
npm i