IntelliCenter Web Client and its Possible Alternatives

rmontgomery

Well-known member
Oct 14, 2019
150
Rockwall, TX
Have you found that sometimes you have to make multiple requests to get data?
Sometimes it works on the first request, sometimes it takes a re-send of the request.

Ryan
 

rmontgomery

Well-known member
Oct 14, 2019
150
Rockwall, TX
Is there a list somewhere of the different circuit types? I have the common names from the setup, but need the "shorthand" names that are passed through the interface. I can just setup each type to see what it returns, but would be easier if a list existed :)
 

guinness

Well-known member
May 3, 2019
553
California
Below is the list that I've compiled, but it's not complete. One suggestion is to poke around the Javascript files (like Enumerations.js & TranslatorProvider.js) on the Pentair web portal.

Object types (Sub-types): BODY (Pool, Spa), CHEM (ICHLOR), CIRCUIT (All, CIRCGRP. Generic, INTELLI, Light, MASTER, Pool, Spa), HEATER (Generic, Heater, Solar), MODULE (I5P, I5PS, I10PS, VALVEXP), PANEL (OCP), PUMP (SINGLE, Speed, VSF) & SENSE (Air, Pool, Solar).
 
Last edited:

Gibby13

Well-known member
Jul 12, 2019
96
Elgin, SC
For anyone that uses Home Assistant, the main thing I wanted to be able to do was get the pool temp, trigger features. I am not really good at all in "coding" applications but I can hack stuff together pretty well.

With the below setup and the Alexa integration in Home Assistant, we are now able to stay "Alexa, what is the pool temperature?" or "Alexa, turn on the waterfall"

Here is how I pull in the Pool Temp status and status of a feature.

sensor:
- platform: tcp
name: Pool Temp
host: intellicenter.local
port: 6681
payload: '{"command":"RequestParamList","objectList":[{"objnam":"B1101","keys":["TEMP"]}],"messageID":"1234"}'
value_template: |
{{ value | regex_findall_index('"TEMP":"\d+"') | regex_findall_index('\d+') }}
unit_of_measurement: "°F"

- platform: tcp
name: Waterfall Status
host: intellicenter.local
port: 6681
payload: '{"command":"RequestParamList","objectList":[{"objnam":"FTR05","keys":["STATUS"]}],"messageID":"1234"}'
value_template: |
{{ value | regex_findall_index('"STATUS":"(\\w+)"') }}

Here is how I have the switches setup

switch:

- platform: command_line
switches:
waterfall_cli:
command_on: |
echo '{"command":"SetParamList","messageID":"1234","objectList":[{"objnam":"FTR05","params":{"STATUS":"ON"}}]}' | nc intellicenter.local 6681
command_off: |
echo '{"command":"SetParamList","messageID":"1234","objectList":[{"objnam":"FTR05","params":{"STATUS":"OFF"}}]}' | nc intellicenter.local 6681

- platform: template
switches:
waterfall:
value_template: "{{ is_state('sensor.waterfall_status', 'ON') }}"
turn_on:
service: switch.turn_on
data:
entity_id: switch.waterfall_cli
turn_off:
service: switch.turn_off
data:
entity_id: switch.waterfall_cli
 
  • Like
Reactions: guinness

rmontgomery

Well-known member
Oct 14, 2019
150
Rockwall, TX
Looking good Ryan! Are you using Java, Kotlin or React for this app?
Xamarin

I don't have a Mac though, so someone else will need to build the iphone version. The code should work on both Android and iPhone though. Also should be easy to make a windows app when done.
 

Enjoying this content?

Support TFP with a donation.

Give Support

rmontgomery

Well-known member
Oct 14, 2019
150
Rockwall, TX
Okay, need some assistance from js expert. What command needs to be sent to get live status of everything? i.e. current pump speed, current circuit status, etc
 

guinness

Well-known member
May 3, 2019
553
California
Circuits are easy just request parameter STATUS for each objnam and you get ON/OFF.

var keys = ["STATUS"];
var objlist = objnames.map(function () {
return { "objnam": this, "keys": keys };
});
var cmd = { "command": "RequestParamList", "objectList": objlist.get(), "messageID": uuidv4() };

Looking at Enumerations.js you can get following parameter for PUMP:

var keys = ["RPM","GPM","PWR","CIRCUIT","PRIM","MIN","MAX","SNAME","SUBTYP","STATIC","PRIMFLO"];
 
  • Like
Reactions: rmontgomery

rmontgomery

Well-known member
Oct 14, 2019
150
Rockwall, TX
update: Nevermind, figured it out...was missing some brackets,etc...

var cmd = {"command": "RequestParamList", "objectList": [{ "objnam" : "PMP01", "keys" : ["STATUS"] }], "messageID": uuidv4() };
 
Last edited:

guinness

Well-known member
May 3, 2019
553
California
From HomeController.js how the numeric value is intepreted:

// PUMP STATUS
// ON = 10
// OFF = 0

if (pump.STATUS === '10')
return "pump-led ledOn";
else
return "pump-led ledOff";

Also STATUS for heaters isn't useful, you'll probably need to check parameter HTMODE and HomeController.js has those enumerations.
 
Last edited:

rmontgomery

Well-known member
Oct 14, 2019
150
Rockwall, TX
Continuing to make progress...
Let me know if there are any requests for what you want on the main status page, otherwise I will just lay it out like I use it :)
Screenshot_1593789409.png
 
Last edited:

guinness

Well-known member
May 3, 2019
553
California
Looks awesome! I also have solar in addition to gas heating so it would be nice to have that shown if possible. Do you have a GitHub repo that you can share?
 

rmontgomery

Well-known member
Oct 14, 2019
150
Rockwall, TX
There is a solar icon also. I will upload to github. Having trouble getting set commands to work. Think I have the syntax correct, but it doesn't seem to take it.
 
  • Like
Reactions: guinness

Enjoying this content?

Support TFP with a donation.

Give Support
Thread Status
Hello , There was no answer in this thread for more than 60 days.
It can take a long time to get an up-to-date response or contact with relevant users.