IntelliCenter Gateway and Control Apps

Sure I think I'll try a 4 next but it's not needed for the pool software and I was a little concerned about compatibility so I stuck with the 3.
 
  • Like
Reactions: liddown
  • Like
Reactions: setsailsoon
Is the gateway here a "build-on" or improvement of the McQwerty IntelliCenter UI/API that I had originally used and that you asked me to send to you in June, or is this something completely different?

It's similar, but a different implementation. Instead of using a MQTT server, it uses SignalR for exchanging messages with the client.

So the pool controller that rmontgomery worked on here and that I opened through the blue stacks emulator, is a different web interface that uses this same gateway?

Strictly speaking it's an application rather than a web interface, but yes it uses gateway to communicate with the IntelliCenter. Even though it can communicate directly with the IntelliCenter it's insecure and only suitable for a local network. Gateway with a reverse proxy, encrypts the communication and access is password protected allowing it to be used over the internet.
 
  • Like
Reactions: MyAZPool
Anybody want to create a Homebridge plugin? My wife works at Apple, so we are exclusively Apple. I’d like some Siri control of IntelliCenter.

I don't know much about the Apple ecosystem, but if you can call a REST API you should be able to get something working. Siri Shortcuts seems like it fits that bill, have you used that before?
 
I don't know much about the Apple ecosystem, but if you can call a REST API you should be able to get something working. Siri Shortcuts seems like it fits that bill, have you used that before?
I have used Siri Shortcuts. Unfortunately IntelliCenter isn’t compatible
 
Thanks for letting me know about the bad link, I'll replace it with an archived version at https://archive.is/SkD1B. From reading your last post you were able to get Docker installed, well done. Thanks for detailing your journey, it can be daunting when starting off but it's rewarding when the pieces come together.
Thanks, glad to help in a very small way. In the new link you showed there's a link at the bottom that won't work - something about creating a docker-compose alias. It won't work either. Seems like the common problem is an expired certificate for anything to do with danielbkr.net.

I hope this is helpful.

Chris
 
@guinness

OK, I'm really close now. Entered the command from your Github Home:

sudo docker run -it -p 5000:80 -e "Configuration__TelnetHost=192.168.1.100" -e "Users__user=pa55word" mguinness/intellicentergateway

(I added "sudo" to avoid denied permission problem with the Docker run command)

Then it worked... I think it did anyway. Entered the url localhost:5000 and took me to the Intellicentergateway Home page. Used the user and pw from the Docker run command and took me to a blank page but I figure that's OK. All it is doing is providing a gateway access, right?

So next I tried the Intellicenter Control App... can't figure out the "away url" also is the password the one in my Intellicenter or the one setup by the Docker run command.

Thanks for your patience with this newbie. Once I get in I'll summarize this in one post so you won't have to keep answering the same newbie questions.

Chris
 
Last edited:
Are you familiar with the REST API support in Siri Shortcuts? It would be relatively easy to add an endpoint to the Gateway application to support that.
No. I just bought a HOOB (HomeKit out of the box) device. It hasn’t arrive yet. I plan on playing around with it to see if I can get it to talk to IntelliCenter
 

Enjoying this content?

Support TFP with a donation.

Give Support
Finally! I think I have the gateway working on my RPi! Now I just need to figure out the "away url" for the app... you'd think I could figure it out after all this, right?

I still feel dumb as a bag of hammers but at least I'm making forward progress.

Chris

Home page
SensorsSubscribe
NameReading
Solar Sensor 192°
Water Sensor 190°
Air Sensor84°
PumpsSubscribe
NameState
Single Spd0
Booster Pump0
HeatersSubscribe
NameState
Gas HeaterOFF
Solar HeaterOFF
ModuleSubscribe
NameStateActions
Booster PumpOFFOnOff
Pool/Spa LightsOFFOnOff
ChlorinatorONOnOff
Aux 4OFFOnOff
PoolONOnOff
Circuit Group 1OFFOnOff
ModuleSubscribe
NameStateActions
SpaOFFOnOff
AUX 5OFFOnOff
AUX 6OFFOnOff
AUX 7OFFOnOff
Circuit Group 1OnOff
 
Then it worked... I think it did anyway. Entered the url localhost:5000 and took me to the Intellicentergateway Home page. Used the user and pw from the Docker run command and took me to a blank page but I figure that's OK. All it is doing is providing a gateway access, right?

Yes, you seem close. I suspect the Gateway isn't able to connect to the IntelliCenter, if you open up the developer console in Chrome you may see a message to that effect. Make sure you have the Telnet host IP address set correctly for your network - I would suggest setting a reserved IP address in your router for the IntelliCenter with it's MAC address.

If the Gateway is connected, you should see a basic web page display with your equipment listed. Until you see that, the away url won't work in the control application. I will need to make a message show up when it's unable to connect to the IntelliCenter to avoid any confusion - the feedback you're providing will help improve the application.
 
Last edited:
Just saw your new message, I can see you have Gateway working now. I don't know what your local IP address is for the RPI, but the url should be something like http://192.168.1.101:5000/, change the IP accordingly. Again I would use a reserved IP address in your router for the RPi so it won't change over time.

To enable https (encrypted) support you will need to use Docker compose with instructions from the wiki. Recommended if you want to access IntelliCenter over the internet when you're away from home.
 
Just saw your new message, I can see you have Gateway working now. I don't know what your local IP address is for the RPI, but the url should be something like http://192.168.1.101:5000/, change the IP accordingly. Again I would use a reserved IP address in your router for the RPi so it won't change over time.

To enable https (encrypted) support you will need to use Docker compose with instructions from the wiki. Recommended if you want to access IntelliCenter over the internet when you're away from home.
Many thanks to you,@rmontgomery , @Katodude , and @MyAZPool. I now have a better appreciation for all the time you must have put into this. I still have a little way to go to get the ip address straightened out but I feel like I've learned a LOT. All thanks to y'all. I'll work on the post that lists all it takes for a total newbie to get this far... may take some of the load off y'all.

Chris
 
Get Started with a Raspberry Pi for Intellicenter Control Even if You Don't Know Anything

I know there must be other potential RPi newbies trying to set up for the first time and it's pretty difficult to find out how to get it up and running for pool control without taking an entire RPi school or taking a LOT of time from one of our gracious tech experts that really have other things to do. So I thought I would add this post to show newbies exactly what I had to to do get up and running step-by-step. I'm not the expert, just the communicator. Virtually all of these commands are copied from 3 or 4 documents online including instructions at the Github site that were written by TFP members @rmontgomery and @guinness who wrote the software that runs on the RPi and the phone app. Some also came from blogs and other instructions sources. The first step is to install Docker. There are a lot of websites and blogs that offer specific steps to install Docker. I found 5 and after a few hours of trying all 5 procedures only one worked for me. So the steps to get Docker working came from that site. I suspect some that didn't work were for boards with different chips and or versions of RPi and that caused the error.
  1. First buy the kit I did on (@guiness recommendation and it worked great!) for about $50. This little board about the size of a pack of playing cards is literally a full computer. You just plug in a usb mouse, keyboard, HDMI monitor cord, power supply: 1599300926511.png 1599301192454.pngThere are literally hundreds of other places to buy these kits. Some have more parts than others. I already had a spare power supply laying around so I got this one. Next Google "assemble RPi 3b" and follow one of the videos. It's much easier than reading the micro print instructions that come with the board. Easy Peasy. Once you get it up and running just unplug everything except the power then set it aside somewhere in the house to run. It will keep providing the gateway for the 3rd party apps so you can access your Intellicenter from anywhere you have an internet connection.
  2. Next install docker. Why do this? It's almost the only way a newbie can get software installed on an RPi. It's not as simple as windows where you just "install" software and then run it with a mouse click. You have to enter all kinds of commands and install a myriad of other software to make a program work. Docker fixes all this by allowing developers to produce an image that is used by docker to take care of this for you. This newbie strongly recommends you do it this way after he tried to ignore expert advice from @guinness to use docker... wasted hours of my time as a result! For the rest of this project I found it was easiest to use the RPi to run the chrome browser and the terminal program that both are already supplied with the operating system that is on the sd card supplied with the kit. So you can just click on the globe at the top left on the screen for the browser (Chrome) and the little black box that opens a terminal window. In the browser navigate to this page on the TFP site. Then just copy the bolded commands below and paste them into the terminal then press enter to run them. Do this one at a time for each of the bolded text bullets below. Copy only the bolded text exactly as it's shown. Nothing more, nothing less. Then press "enter" on your keyboard. This will make the computer execute that command. After each is entered you'll see some response and some of them cause many lines of text to print out on the screen. Then when it's done you'll see the little red raspberry with the blinking cursor indicating it's ready for another command.
  3. Install some required packages first:
    • sudo apt update
    • sudo apt install -y \
    • apt-transport-https \
      ca-certificates \
      curl \
      gnupg2 \
      software-properties-common
  4. Get the Docker signing key for packages
  5. Add the Docker official repos
    • echo "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
      $(lsb_release -cs) stable" | \
      sudo tee /etc/apt/sources.list.d/docker.list
  6. Install Docker
    • sudo apt update
    • sudo apt install -y --no-install-recommends \
      docker-ce \
      cgroupfs-mount
  7. Next you want to set up Docker so it will run every time you start it
    • sudo systemctl enable docker
    • sudo systemctl start docker
  8. Now test to see if Docker is working
    • sudo docker run --rm hello-world
  9. The output should look something like this:
    • 1599273398905.png
    • Your output may be a little different but So long as you get the line that says "Hello from Docker" you did it right. Congrats!
  10. Next you have to install Docker Compose. This requires a few more commands for the RPi because of the chip it uses. Install the followingrequired packages
    • sudo apt update
    • sudo apt install -y python3-pip libffi-dev
  11. Install Docker Compose from pip. This might take a while
    • sudo pip3 install docker-compose
  12. Now you're ready to run docker using the commands from the Github readme files @guinness was kind enough to document here.
    • sudo docker run -it -p 5000:80 -e "Configuration__TelnetHost=192.168.1.100" -e "Users__user=pa55word" mguinness/intellicentergateway
    • What this does is pull the intellicentergateway image from Docker Hub if not already downloaded and then run it. The -p 5000:80 parameter means that you can open a browser at http://localhost:5000/ to access. -e "Configuration__TelnetHost=192.168.1.100" is the parameter used to set the IP address of your IntelliCenter on the network. Finally, -e "Users__user=pa55word" is the username and password that you will use to login to the application and should be changed accordingly
    • Pay attention to the above paragraph. You have to change some of the command contents based on your specific installation. I spent a few extra hours because I missed this part.
  13. Now you should have an Intellicenter Home Page at http://localhost:5000/. Enter this address in your browser then the user name and password you added into the command in step 12. Voila! you should see a webpage like the one below that lists out all the controls and readings set up for your pool just got a major milestone. Click the subscribe link for each section to get your current readings. Then you can also press the buttons to turn things on or off.
Home page
SensorsSubscribe


NameReading
Solar Sensor 192°
Water Sensor 190°
Air Sensor84°
PumpsSubscribe

NameState
Single Spd0
Booster Pump0
HeatersSubscribe

NameState
Gas HeaterOFF
Solar HeaterOFF
ModuleSubscribe

NameStateActions
Booster PumpOFFOnOff
Pool/Spa LightsOFFOnOff
ChlorinatorONOnOff
Aux 4OFFOnOff
PoolONOnOff
Circuit Group 1OFFOnOff
ModuleSubscribe

NameStateActions
SpaOFFOnOff
AUX 5OFFOnOff
AUX 6OFFOnOff
AUX 7OFFOnOff
Circuit Group 1OnOff

I'm not done yet and will add the next few steps after I finish the setup. They will get the app working remotely including converting your home LAN to simulate a static IP address. Don't worry if you don't know what this means. It's easy to do even if you don't understand what your doing. I've tried as much as possible to make this a cookbook procedure. Much is just cut and pasted from existing websites or @guinness and @rmontgomery great documentation online at Github. I also have gotten some invaluable help from @MyAZPool and @Katodude to get this far. Thanks much guys!

Learning this RPi stuff takes perseverance, and some help from experts. But there's hope for everybody if I can do it! My last programming language was Fortran IV in the 70's!

I hope this is helpful and will encourage more people to try this stuff. For now, these micro-computers the size of a pack of playing card are mostly for hobbyists. Like everything technology this is rapidly changing and wouldn't surprise me this becomes mainstream in just a few years and hopefully make pool automation much more affordable for everybody.

More to come...

Chris
 
Last edited:
@guinness or @rmontgomery
Besides the IntelliCenter, can the IntelliCenter Gateway and associated Control App be used for the IntelliTouch and/or EasyTouch as well?
Thanks...
r.
I have a friend that has the EasyTouch, but I have not looked into seeing if it can be controlled through the same app. After this weekend I can look into it.

Ryan
 
  • Like
Reactions: MyAZPool
I have used Siri Shortcuts. Unfortunately IntelliCenter isn’t compatible

I've added an endpoint to the Gateway application to support Siri Shortcuts. Below are some screenshots from a shortcut I used to test. Let me know if you are interested in this solution and I'll go into more detail on the endpoint parameters.

Siri1.PNGSiri2.PNGSiri3.PNG

Please note that the value for the Authorization header should be "Basic" followed by a space and then the Base64 Encoded variable. This means that the value from the text box will be encoded and sent to the server as "Authorization: Basic dXNlcjpwYTU1d29yZA==" and you can see that the proper spacing is required.
 
Last edited:
Since I've just had a power outage it's a good time to document the endpoint. A prerequisite is to have IntelliCenter Gateway running on either LAN or WAN. For demonstration purposes we'll say the endpoint address on the local network is http://192.168.1.11:5000/shortcuts.

The endpoint will accept HTTP POST requests with form field values named "Object", "Param" & "Value" (the latter being optional).

Object is the internal name that IntelliCenter uses, sign in to Gateway website and use http://192.168.1.11:5000/test.html to explore objects and view the name in the browser developer console when selected. For example pool light on my system is C0004, but your system could have a different function so adjust accordingly.

Param is the parameter name associated with an object, the parameter "STATUS" will be used for circuits. Others are "PROBE" for sensors, "SALT" for IntelliChlor and "PHVAL" for IntelliChem.

Value is used when you need to set a value for a given parameter. For circuits this will either be "ON" or "OFF" which are self explanatory.

The endpoint is password protected using the basic authentication scheme which is explained further in curl documentation. You will need to use the username and password defined in appsettings.json or from an environment variable if using Docker.

A call to the endpoint will return a JSON response. The "status" field contains the HTTP status code which should be 200 (OK) for a successful call, or 401 (Unauthorized) if the user credentials are invalid. The "result" field contains the value returned from IntelliCenter for the object and parameter requested.

The endpoint basically provides a wrapper around the IntelliCenter commands GetParamList and SetParamList. The object and param fields are required for both commands, but SetParamList also requires the value field. For example to get the state of my pool light you would pass C0004 & STATUS which might return OFF. To turn on my pool light you would pass C0004, STATUS & ON which if successful would return ON.

Either Ryan or I can probably give further insight into the IntelliCenter objects and parameters if needed, but the information above should be enough to get you started with the endpoint. I'd also recommend using the cURL tool as a way to quickly verify sending requests to the IntelliCenter via the gateway endpoint, a couple of examples are provided below.

curl --user user׃pa55word --data "object=SSW11&param=PROBE" http://192.168.1.11:5000/shortcuts

curl --user user׃pa55word --data "object=C0004&param=STATUS&value=ON" http://192.168.1.11:5000/shortcuts
 
Last edited:

Enjoying this content?

Support TFP with a donation.

Give Support
Thread Status
Hello , This thread has been inactive for over 60 days. New postings here are unlikely to be seen or responded to by other members. For better visibility, consider Starting A New Thread.