IntelliCenter Web Client and its Possible Alternatives

rmontgomery

Well-known member
Oct 14, 2019
147
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
147
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
285
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
91
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
147
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
285
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
147
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
285
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
147
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
285
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?