Pentair Intellitouch Plugin

Posted on
Tue Jun 12, 2018 12:28 pm
bsp9493 offline
Posts: 153
Joined: Nov 30, 2017
Location: Kelowna, BC

Re: Pentair Intellitouch Plugin

Question regarding returned values. Please see below (debug logging turned on)...

Jun 12, 2018, 11:04:47 AM
Pentair Pool Debug From Pentair: !00 SOLTMP=69 F
Pentair Pool Debug From Pentair: !00 SOLTMP=70 F
Pentair Pool Debug From Pentair: !00 SOLTMP=69 F

Jun 12, 2018, 11:05:31 AM
Pentair Pool Debug From Pentair: !00 SOLTMP=70 F

Jun 12, 2018, 11:09:32 AM
Pentair Pool Debug From Pentair: !00 SOLTMP=71 F
Pentair Pool Debug From Pentair: !00 SOLTMP=70 F
Pentair Pool Debug From Pentair: !00 SOLTMP=71 F


why am I seeing a temp updated 3 times within one degree?
ie
11:04 - 69-70-69
1109 - 71-70-71

11:05 - 70 is what I would expect to see.

I have triggers set on this value as follows...
> 90 does this ...
< 89 does that ...

so when I get (89 -90 -89) or (90-89-90) during an update, it causes my trigger(s) to fire multiple times. Not a big deal, just trying to understand as I have a trigger set on this temp change.

Thanx in advance

d

Posted on
Tue Jun 12, 2018 12:34 pm
bsp9493 offline
Posts: 153
Joined: Nov 30, 2017
Location: Kelowna, BC

Re: Pentair Intellitouch Plugin - plugin code question

Question about the plugin code as well... Please let me know if I should post this somewhere else.

I see you are using the following to process the status.xml file.

Could I do something similar to parse and use the pumps.xml and the chem.xml files?

def autelisProcessStatus(self):
#get the status.xml file from the Autelis Interface and parse system node to devices
self.logger.debug("Processing system node from Autelis Status.xml...")
xmlset = "status"
url = "http://" + self.autelisIP + "/" + xmlset + ".xml"
req = requests.get(url, auth=('admin', self.pluginPrefs['autpwd']))
autdata = ET.XML(req.text)
if "SYSTEM" in self.circuitdev:
self.logger.debug("'System' Device Available")
dev = self.circuitdev["SYSTEM"]
for child in autdata.find('system'):
if child.tag in self.autelisStateMap:
statecode = self.autelisStateMap[child.tag]
repvalue = child.text
if statecode == "readystate":
repvalue = self.autelisRunstate(repvalue)
elif statecode == "model":
repvalue = self.modelList[int(repvalue)]
elif statecode == "opmode":
repvalue = self.opMode[int(repvalue)]
elif child.tag[:6] == "sensor":
repvalue = self.okErr[int(repvalue)]
curstate = dev.states[statecode]
if curstate == repvalue:
self.logger.debug(dev.name + ": " + statecode + " is " + repvalue)
else:
dev.updateStateOnServer(statecode, value=repvalue)
self.logger.info(dev.name + ": " + statecode + " is " + repvalue)
else:
self.logger.debug("No 'System' Device Defined")
self.refreshStatus = round(time.time(),0) + (60 * float(self.pluginPrefs['statusPoll']))

Posted on
Tue Jun 12, 2018 8:20 pm
Swancoat offline
Posts: 503
Joined: Nov 20, 2009
Location: Houston

Re: Pentair Intellitouch Plugin

bsp9493 wrote:
Question regarding returned values. Please see below (debug logging turned on)...

Jun 12, 2018, 11:04:47 AM
Pentair Pool Debug From Pentair: !00 SOLTMP=69 F
Pentair Pool Debug From Pentair: !00 SOLTMP=70 F
Pentair Pool Debug From Pentair: !00 SOLTMP=69 F

Jun 12, 2018, 11:05:31 AM
Pentair Pool Debug From Pentair: !00 SOLTMP=70 F

Jun 12, 2018, 11:09:32 AM
Pentair Pool Debug From Pentair: !00 SOLTMP=71 F
Pentair Pool Debug From Pentair: !00 SOLTMP=70 F
Pentair Pool Debug From Pentair: !00 SOLTMP=71 F


why am I seeing a temp updated 3 times within one degree?
ie
11:04 - 69-70-69
1109 - 71-70-71

11:05 - 70 is what I would expect to see.

I have triggers set on this value as follows...
> 90 does this ...
< 89 does that ...

so when I get (89 -90 -89) or (90-89-90) during an update, it causes my trigger(s) to fire multiple times. Not a big deal, just trying to understand as I have a trigger set on this temp change.

Thanx in advance

d


Because the Intellitouch is reporting those temperature changes.

http://nerdhome.jimdo.com

Posted on
Tue Jun 12, 2018 8:21 pm
Swancoat offline
Posts: 503
Joined: Nov 20, 2009
Location: Houston

Re: Pentair Intellitouch Plugin - plugin code question

bsp9493 wrote:
Question about the plugin code as well... Please let me know if I should post this somewhere else.

I see you are using the following to process the status.xml file.

Could I do something similar to parse and use the pumps.xml and the chem.xml files?

def autelisProcessStatus(self):
#get the status.xml file from the Autelis Interface and parse system node to devices
self.logger.debug("Processing system node from Autelis Status.xml...")
xmlset = "status"
url = "http://" + self.autelisIP + "/" + xmlset + ".xml"
req = requests.get(url, auth=('admin', self.pluginPrefs['autpwd']))
autdata = ET.XML(req.text)
if "SYSTEM" in self.circuitdev:
self.logger.debug("'System' Device Available")
dev = self.circuitdev["SYSTEM"]
for child in autdata.find('system'):
if child.tag in self.autelisStateMap:
statecode = self.autelisStateMap[child.tag]
repvalue = child.text
if statecode == "readystate":
repvalue = self.autelisRunstate(repvalue)
elif statecode == "model":
repvalue = self.modelList[int(repvalue)]
elif statecode == "opmode":
repvalue = self.opMode[int(repvalue)]
elif child.tag[:6] == "sensor":
repvalue = self.okErr[int(repvalue)]
curstate = dev.states[statecode]
if curstate == repvalue:
self.logger.debug(dev.name + ": " + statecode + " is " + repvalue)
else:
dev.updateStateOnServer(statecode, value=repvalue)
self.logger.info(dev.name + ": " + statecode + " is " + repvalue)
else:
self.logger.debug("No 'System' Device Defined")
self.refreshStatus = round(time.time(),0) + (60 * float(self.pluginPrefs['statusPoll']))

yep

http://nerdhome.jimdo.com

Posted on
Sun Jun 17, 2018 9:08 am
Alain offline
Posts: 88
Joined: Apr 19, 2008

Will Chilling Mode work?

Hi - Loving your plugin - it's working really well.

It's getting hot here in Florida, and I'm about to switch my new heat pump to chill mode. Will the plugin work?

The Autelis people say their software is ready for it. All needs to be tested of course.

Thanks
Alain

Posted on
Mon Jun 18, 2018 6:14 am
Swancoat offline
Posts: 503
Joined: Nov 20, 2009
Location: Houston

Re: Will Chilling Mode work?

Alain wrote:
Hi - Loving your plugin - it's working really well.

It's getting hot here in Florida, and I'm about to switch my new heat pump to chill mode. Will the plugin work?

The Autelis people say their software is ready for it. All needs to be tested of course.

Thanks
Alain


I'm not sure actually... On one hand, for the most part it just reports and repeats what is available from Pentair or Autelis, but I'm not sure if I set it up for a cooling function at all, since I didn't consider that possibility. You can try it and see what you get...

http://nerdhome.jimdo.com

Posted on
Sun Aug 05, 2018 2:22 pm
Alain offline
Posts: 88
Joined: Apr 19, 2008

Re: Pentair Intellitouch Plugin

Hi again,

I now have an Aqua Cal heat pump with chilling option installed and working, and controlled via the EasyTouch 8.

My Autelis box seems to communicate with the EasyTouch OK to be able to control it.

However, the options to control and display the parameters required to use the Heatpump are not available via the Pentair plugin.

Namely, I need to be able to display and control all of the following:

</equipment>
<temp>
<htstatus>
Definition: The current heater status
Possible values: 4-bit value (bit0 = pool heat, bit1 = spa heat, bit2 = pool solar, bit3 = spa solar; 0 = off/standby, 1 = heating)
</htstatus>
<poolht>
Definition: The current pool/hi-temp heater settings
Possible values: 0 = off, 1 = heater, 2 = solar preferred, 3 = solar only
</poolht>
<spaht>
Definition: The current spa/lo-temp heater settings
Possible values: 0 = off, 1 = heater, 2 = solar preferred, 3 = solar only
</spaht>
<poolsp>
Definition: The current pool/hi-temp setpoint
Possible values: positive integer
</poolsp>
<spasp>
Definition: The current spa/lo-temp setpoint
Possible values: positive integer

The way Aqua Cal has implemented their interface to the EasyTouch is that HeatPump control is actually done through the Solar logic.
Autelis allows for this through the "Solar is Heatpump" checkbox in the Heaters Settings web interface page.
I need to be able to set the Pool Setpoint and the Pool Max setpoint, and change each one independently.
I need to be able to set the Pool Heat setting to HtPump Only.

Do you think these changes would be possible?

Thank you for all your hard work!
Alain

Posted on
Tue Aug 07, 2018 8:07 am
Swancoat offline
Posts: 503
Joined: Nov 20, 2009
Location: Houston

Re: Pentair Intellitouch Plugin

I should be able to take a look at it tomorrow, but from right now that looks like it would involve a fairly involved reworking of the plug-in.

http://nerdhome.jimdo.com

Posted on
Thu Aug 09, 2018 9:21 am
Alain offline
Posts: 88
Joined: Apr 19, 2008

Re: Pentair Intellitouch Plugin

Thanks for taking a look. I am also getting a "tuple index out of range" error:

Traceback (most recent call last):
File "plugin.py", line 238, in runConcurrentThread
File "plugin.py", line 313, in parseToServer
IndexError: tuple index out of range

Posted on
Sun Aug 19, 2018 10:46 am
bsp9493 offline
Posts: 153
Joined: Nov 30, 2017
Location: Kelowna, BC

Re: Pentair Intellitouch Plugin

Hi...

in your next release can you please add the highlighted line if appropriate.

# Map of Pentair-style Circuit Codes and a quad-tuple indicating what device code the device will be found under,
# (USUALLY, but not always, the same as the reported code)
# what indigo variable state should be updated, a suffix for the log, and the type of processing the data requires.
# Also, All 50 Auxiliary ciruits are the same: AUXx = ("AUXx", "onOffState", "")
self.pentairStateMap = {}
self.pentairStateMap["POOLHT"] = ("POOLHT", "hvacOperationMode", " Mode", "hmode")
self.pentairStateMap["SPAHT"] = ("SPAHT", "hvacOperationMode", " Mode", "hmode")
self.pentairStateMap["POOLSP"] = ("POOLHT", "setpointHeat", " Set Point", "temp")
self.pentairStateMap["SPASP"] = ("SPAHT", "setpointHeat", " Set Point", "temp")
self.pentairStateMap["AIRTMP"] = ("SYSTEM", "airtemp", " Air Temperature", "temp")
self.pentairStateMap["POOLTMP"] = ("POOLHT", "temperatureInput1", " Temperature", "temp")
self.pentairStateMap["SPATMP"] = ("SPAHT", "temperatureInput1", " Temperature", "temp")
self.pentairStateMap["SOLTMP"] = ("SYSTEM", "solartemp", " Solar Temperature", "temp")
self.pentairStateMap["OPMODE"] = ("SYSTEM", "opmode", " Operation Mode", "ilinkOpmode")

I found this is what was giving me the start up errors on 238 and 313.


After adding the above line, I still get the following start up error... can't seem to trace this one down, but it doesn't seem to have any significant impact

Started plugin "Pentair Pool 2.0.2"
Pentair Pool Serial Port URL is socket://192.168.1.171:6000
Pentair Pool Serial Port Open at socket://192.168.1.171:6000
Pentair Pool Error exception in deviceStartComm(*Intellitouch): int() argument must be a string or a number, not 'NoneType'
Pentair Pool *POOL (main) is on
Pentair Pool Edge CL is off
Pentair Pool Edge H is off
Pentair Pool Edge L is off
Pentair Pool Edge M is off
Pentair Pool Edge Solar is off
Pentair Pool Lights Pool is off
Pentair Pool Pool CL is off
Pentair Pool Pool H is off
Pentair Pool Pool L is off
Pentair Pool Pool M is off
Pentair Pool Pool Vac is off


Only thing I would like to see added at some point is access to the chem.xml file. Was toying around with it a bit myself, but still way beyond my ability.



Great Work!... Love the plugin!

Thank

dave

Posted on
Thu Dec 13, 2018 8:38 pm
farberm offline
Posts: 393
Joined: Feb 24, 2008

Re: Pentair_Air_Temp

I notice the variable Pentair_Air_Temp - this does not match the airtemp that is reported under the main Pool Control device. It also seems to stay constant - right now 39. Is this normal. I am trying to plot the airtemp on a graph but so not see that this variable is reported? I see airtemp under the control device but not listed as a variable and I cannot track it in the indigo database.

Also is there any way to track ph and ORP. I am using the ilink adapter with intellitouch panel

Posted on
Thu Dec 13, 2018 8:43 pm
bsp9493 offline
Posts: 153
Joined: Nov 30, 2017
Location: Kelowna, BC

Re: Pentair Intellitouch Plugin

screenshot of my pool control page... pretty simple, but uses a combination of Pentair Plug in and Autelis (via ghost xml)
Attachments
Screen Shot 2018-12-13 at 6.33.50 PM.png
Screen Shot 2018-12-13 at 6.33.50 PM.png (255.54 KiB) Viewed 6995 times

Posted on
Thu Dec 13, 2018 9:42 pm
farberm offline
Posts: 393
Joined: Feb 24, 2008

Air Temperature

OK, I just re-read thru the thread and I see the following.....

-Air Temperature: The previous version of the plugin reported the system's air temperature to a variable. As air temperature is now a state of the 'System' device, the variable will no longer be updated.

How do I run a script to assign the system air temperature (airtemp) to a variable so I can use it to track things? I guess there must be a script I can run etc?

Posted on
Fri Dec 14, 2018 7:57 am
Alain offline
Posts: 88
Joined: Apr 19, 2008

Re: Pentair Intellitouch Plugin

bsp9493 wrote:
screenshot of my pool control page... pretty simple, but uses a combination of Pentair Plug in and Autelis (via ghost xml)


Nice! Can you tell us more about Autelis communication via ghost xml? Examples of how you do this?

Thanks
Alain

Posted on
Sat Dec 15, 2018 11:16 am
bsp9493 offline
Posts: 153
Joined: Nov 30, 2017
Location: Kelowna, BC

Re: Pentair Intellitouch Plugin

check out the Autelis Wiki... all the info is there...

http://autelis.com/wiki/index.php?title=Pool_Control_for_Pentair_Intellitouch/EasyTouch

the ghostxml docs explain the rest:)

autelis uses 4 xml files you can use those to monitor the values within them
Chem
Names
Pumps
Status

flash the autelis device with the tcpip serial firmware as per documentation on their website.

create some actions as per their documentation and control your pool the way you want, not the way pentair wants you to:)

d

Who is online

Users browsing this forum: No registered users and 3 guests