Pool Equipment Automation Suggestion

Thank you Avanti!
I'll code this up in my program and see what happens.
rob
ps: will let you know if I have success.
 
Hello Avanti - that worked!!
Thank you so much. 
For me though I have to code it as follows: 00 FF A5 00 10 20 86 02 02 00 01 5F
 
A5 00 rather than A5 01
Are there other command bytes like 86 that you know?  I guess 86 means <do this>?
Now i'm figuring out what device hex codes I can use - 02 above is my heater.
Thanks again!
rob
 
Hello - yes
I've written my controller in both VB and Java.
I have the Java app running on my Nexus pad - love the fact I don't have to go outside anymore to turn things on and off.
Now that spring has finally arrived I want to further my App and add the code to control the temp settings on the heater.
I'll try by playing around on the panel and capturing the data stream to see what is passed between the panel and the heater.
However, if anyone out there already knows the command sequence please share.
If your interested in this code drop me a note and I will share it.
Cheers
rob
 
Anyone out there that has anymore code snippets for heater control?
Specifically I'm looking for the byte sequence command to change the heater temperature.
Thanks
rob
 
robc64 said:
Hello - yes
I've written my controller in both VB and Java.
I have the Java app running on my Nexus pad - love the fact I don't have to go outside anymore to turn things on and off.
Now that spring has finally arrived I want to further my App and add the code to control the temp settings on the heater.
I'll try by playing around on the panel and capturing the data stream to see what is passed between the panel and the heater.
However, if anyone out there already knows the command sequence please share.
If your interested in this code drop me a note and I will share it.
Cheers
rob
Anything you can share? So far I was only able toVB  script a code in homeseer to read the broadcast, but still can't control it. I have the CFI debuged for AUX and feature status, temp, etc.
 
I have a Premise driver for the IntelliTouch system that does some basic things using the A5 version protocol. It is in the Premise Downloads area of Cocoontech. It does do the 0x88 Set Heat message (the high bit seems to imply a Remote address is doing a Set versus a Response packet - I.e., current Heat settings is 0x08). I use a Digi One SP to convert from RS485 to IP. I ended up setting the termination dip switch on the serial converter, as the IntelliTouch Controller seemed to be having difficulties sending data otherwise (yes, I did connect the ground wire).
 
One frustrating thing (besides the fact that Pentair doesn't just release the silly protocol) is that I have not yet determined a way of querying the current heating set points. No 0x08 packet is generated unless a 0x88 packet is first sent. So you can't see the heating set points until a Remote device (which could be the driver) sets them. Not a problem after the data has been acquired, but still annoying.
 
Regarding the byte following the A5 in the header, I have seen 0x00, 0x01, and 0x02. I just use 0x01 and it seems to work.
 
My IntelliChem/IntelliChlor is separate, and I have not looked yet at that bus. Maybe someone has some information?
 
I have an Intellitouch indoor controller and when I hooked it up to my rs485 > usb dongle I got a totally different byte sequence than what I'm seeing online.  I'm using 9600 8 N 1, no flow control... the indoor control shows as version 1.090.
 
I pressed the first three buttons on the left (starting at the top), then the first three on the right (starting at the top), then the heat button.  I see no 00 FF A5 header, instead I get this:
 
012DB9F79BF6F9FDFD0900420000000000000000012DB9F79BF6F9FDFD0900420000000000000000
012DB9F79BF6F3FDFD0300A000000000000000012DB9F79BF6F3FDFD0300A000000000000000012D
B9F79BF6F3FDFD0300A000000000000000012DB9F79BF6F3FDFD0300A000000000000000012DB9F7
9BF6F3FDFD0300A000000000000000012DB9F79BF6F3FDFD0300A000000000000000012DB9F79BF6
F3FDFD0300A000000000000000012DB9F79BF6F3FDFD0300A000000000000000012DB9F79BF6F7FD
FD07005000000000000000012DB9F79BF6F7FDFD07005000000000000000012DB9F79BF6F7FDFD07
005000000000000000012DB9F79BF6F7FDFD07005000000000000000012DB9F79BF6F7FDFD070050
00000000000000012DB9F79BF6F7FDFD07005000000000000000012DB9F79BF6F7FDFD0700500000
0000000000012DB9F79BF6F7FDFD07005000000000000000012DB9F79BF6F5FDFD05004100000000
00000000012DB9F79BF6F5FDFD0500410000000000000000012DB9F79BF6F5FDFD05004100000000
00000000012DB9F79BF6F5FDFD0500410000000000000000012DB9F79BF6F5FDFD05004100000000
00000000012DB9F79BF6F5FDFD0500410000000000000000012DB9F79BF6F5FDFD05004100000000
00000000012DB9F79BF6F5FDFD0500410000000000000000012DB9F77BF4FFFD8F24000000000000
00012DB9F77BF4FFFD8F2400000000000000012DB9F77BF4FFFD8F2400000000000000012DB9F77B
F4FFFD8F2400000000000000012DB9F77BF4FFFD8F2400000000000000012DB9F77BF4FFFD8F2400
000000000000012DB9F77BF4FFFD8F2400000000000000012DB9F77BF4FFFD8F                
 
It looks like each keypress sends a sequence that repeats 8 times.  Anybody ever seen anything like this?
 
crap, sorry.  i didn't get the top part of the data.  the first 8 repeated sequences (12DB9F79BF6BBFDFDCB99) came from the controller before I pressed any buttons.  here's the full stream:
 
000000000000000000012DB9F79BF6BBFDFDCB9900000000000000012DB9F79BF6BBFDFDCB990000
0000000000012DB9F79BF6BBFDFDCB9900000000000000012DB9F79BF6BBFDFDCB99000000000000
00012DB9F79BF6BBFDFDCB9900000000000000012DB9F79BF6BBFDFDCB9900000000000000012DB9
F79BF6BBFDFDCB9900000000000000012DB9F79BF6BBFDFDCB9900000000000000012DB9F79BF6FD
FDFD0D00430000000000000000012DB9F79BF6FDFDFD0D00430000000000000000012DB9F79BF6FD
FDFD0D00430000000000000000012DB9F79BF6FDFDFD0D00430000000000000000012DB9F79BF6FD
FDFD0D00430000000000000000012DB9F79BF6FDFDFD0D00430000000000000000012DB9F79BF6FD
FDFD0D00430000000000000000012DB9F79BF6FDFDFD0D00430000000000000000012DB9F79BF6FB
FDFD0B00A100000000000000012DB9F79BF6FBFDFD0B00A100000000000000012DB9F79BF6FBFDFD
0B00A100000000000000012DB9F79BF6FBFDFD0B00A100000000000000012DB9F79BF6FBFDFD0B00
A100000000000000012DB9F79BF6FBFDFD0B00A100000000000000012DB9F79BF6FBFDFD0B00A100
000000000000012DB9F79BF6FBFDFD0B00A100000000000000012DB9F79BF6F9FDFD090042000000
0000000000012DB9F79BF6F9FDFD0900420000000000000000012DB9F79BF6F9FDFD090042000000
0000000000012DB9F79BF6F9FDFD0900420000000000000000012DB9F79BF6F9FDFD090042000000
0000000000012DB9F79BF6F9FDFD0900420000000000000000012DB9F79BF6F9FDFD090042000000
0000000000012DB9F79BF6F9FDFD0900420000000000000000012DB9F79BF6F3FDFD0300A0000000
00000000012DB9F79BF6F3FDFD0300A000000000000000012DB9F79BF6F3FDFD0300A00000000000
0000012DB9F79BF6F3FDFD0300A000000000000000012DB9F79BF6F3FDFD0300A000000000000000
012DB9F79BF6F3FDFD0300A000000000000000012DB9F79BF6F3FDFD0300A000000000000000012D
B9F79BF6F3FDFD0300A000000000000000012DB9F79BF6F7FDFD07005000000000000000012DB9F7
9BF6F7FDFD07005000000000000000012DB9F79BF6F7FDFD07005000000000000000012DB9F79BF6
F7FDFD07005000000000000000012DB9F79BF6F7FDFD07005000000000000000012DB9F79BF6F7FD
FD07005000000000000000012DB9F79BF6F7FDFD07005000000000000000012DB9F79BF6F7FDFD07
005000000000000000012DB9F79BF6F5FDFD0500410000000000000000012DB9F79BF6F5FDFD0500
410000000000000000012DB9F79BF6F5FDFD0500410000000000000000012DB9F79BF6F5FDFD0500
410000000000000000012DB9F79BF6F5FDFD0500410000000000000000012DB9F79BF6F5FDFD0500
410000000000000000012DB9F79BF6F5FDFD0500410000000000000000012DB9F79BF6F5FDFD0500
410000000000000000012DB9F77BF4FFFD8F2400000000000000012DB9F77BF4FFFD8F2400000000
000000012DB9F77BF4FFFD8F2400000000000000012DB9F77BF4FFFD8F2400000000000000012DB9
F77BF4FFFD8F2400000000000000012DB9F77BF4FFFD8F2400000000000000012DB9F77BF4FFFD8F
2400000000000000012DB9F77BF4FFFD8F        
 
omg guys i'm sorry for spamming.  the A and B on my interface board are mislabeled.  switching them gives the right output:
 
FFFFFFFFFFFFFFFF00FFA51A1020C5010001B5B5FFFFFFFFFFFFFFFF00FFA51A1020C5010001B5B5
FFFFFFFFFFFFFFFF00FFA51A1020C5010001B5B5FFFFFFFFFFFFFFFF00FFA51A1020C5010001B5B5
FFFFFFFFFFFFFFFF00FFA51A1020C5010001B5B5FFFFFFFFFFFFFFFF00FFA51A1020C5010001B5B5
FFFFFFFFFFFFFFFF00FFA51A1020C5010001B5B5FFFFFFFFFFFFFFFF00FFA51A1020C5010001B5B5
FFFFFFFFFFFFFFFF00FFA51A102086020101017979FFFFFFFFFFFFFFFF00FFA51A10208602010101
7979FFFFFFFFFFFFFFFF00FFA51A102086020101017979FFFFFFFFFFFFFFFF00FFA51A1020860201
01017979FFFFFFFFFFFFFFFF00FFA51A102086020101017979FFFFFFFFFFFFFFFF00FFA51A102086
020101017979FFFFFFFFFFFFFFFF00FFA51A102086020101017979FFFFFFFFFFFFFFFF00FFA51A10
2086020101017979FFFFFFFFFFFFFFFF00FFA51A102086020201017A7AFFFFFFFFFFFFFFFF00FFA5
1A102086020201017A7AFFFFFFFFFFFFFFFF00FFA51A102086020201017A7AFFFFFFFFFFFFFFFF00
FFA51A102086020201017A7AFFFFFFFFFFFFFFFF00FFA51A102086020201017A7AFFFFFFFFFFFFFF
FF00FFA51A102086020201017A7AFFFFFFFFFFFFFFFF00FFA51A102086020201017A7AFFFFFFFFFF
FFFFFF00FFA51A102086020201017A7AFFFFFFFFFFFFFFFF00FFA51A102086020301017B7BFFFFFF
FFFFFFFFFF00FFA51A102086020301017B7BFFFFFFFFFFFFFFFF00FFA51A102086020301017B7BFF
FFFFFFFFFFFFFF00FFA51A102086020301017B7BFFFFFFFFFFFFFFFF00FFA51A102086020301017B
7BFFFFFFFFFFFFFFFF00FFA51A102086020301017B7BFFFFFFFFFFFFFFFF00FFA51A102086020301
017B7BFFFFFFFFFFFFFFFF00FFA51A102086020301017B7BFFFFFFFFFFFFFFFF00FFA51A10208602
0601017E7EFFFFFFFFFFFFFFFF00FFA51A102086020601017E7EFFFFFFFFFFFFFFFF00FFA51A1020
86020601017E7EFFFFFFFFFFFFFFFF00FFA51A102086020601017E7EFFFFFFFFFFFFFFFF00FFA51A
102086020601017E7EFFFFFFFFFFFFFFFF00FFA51A102086020601017E7EFFFFFFFFFFFFFFFF00FF
A51A102086020601017E7EFFFFFFFFFFFFFFFF00FFA51A102086020601017E7EFFFFFFFFFFFFFFFF
00FFA51A102086020401017C7CFFFFFFFFFFFFFFFF00FFA51A102086020401017C7CFFFFFFFFFFFF
FFFF00FFA51A102086020401017C7CFFFFFFFFFFFFFFFF00FFA51A102086020401017C7CFFFFFFFF
FFFFFFFF00FFA51A102086020401017C7CFFFFFFFFFFFFFFFF00FFA51A102086020401017C7CFFFF
FFFFFFFFFFFF00FFA51A102086020401017C7CFFFFFFFFFFFFFFFF00FFA51A102086020401017C7C
FFFFFFFFFFFFFFFF00FFA51A102086020501017D7DFFFFFFFFFFFFFFFF00FFA51A10208602050101
7D7DFFFFFFFFFFFFFFFF00FFA51A102086020501017D7DFFFFFFFFFFFFFFFF00FFA51A1020860205
01017D7DFFFFFFFFFFFFFFFF00FFA51A102086020501017D7DFFFFFFFFFFFFFFFF00FFA51A102086
020501017D7DFFFFFFFFFFFFFFFF00FFA51A102086020501017D7DFFFFFFFFFFFFFFFF00FFA51A10
2086020501017D7DFFFFFFFFFFFFFFFF00FFA51A1020C8010001B8B8FFFFFFFFFFFFFFFF00FFA51A
1020C8010001B8B8FFFFFFFFFFFFFFFF00FFA51A1020C8010001B8B8FFFFFFFFFFFFFFFF00FFA51A
1020C8010001B8B8FFFFFFFFFFFFFFFF00FFA51A1020C8010001B8B8FFFFFFFFFFFFFFFF00FFA51A
1020C8010001B8B8FFFFFFFFFFFFFFFF00FFA51A1020C8010001B8B8FFFFFFFFFFFFFFFF00FFA51A
10
 
I have read elsewhere that some of the versions of these things have the + and - backwards. Very frustrating.
 
Looks like the 1a version of this protocol adds a duplicating of the last byte in the CRC.
 
I have made some additions to the driver to also interpret the IntelliChlor messages (those 10 02 ... things that appear after regular messages). Have not uploaded the changes yet.
 
syn   ff 00 ff
hdr   a5         protocol
      1a         version
dst   10         controller
src   20         remote
cmd   c5         query time? The 85 is Set Time. Don't know what the Cx prefix does yet.
len   01
      00
crc   01 b5
end   b5         dup'ing last byte? Not seen in other versions
 
syn   ff 00 ff
hdr   a5         protocol
      1a         version
dst   10         controller
src   20         remote
cmd   86         set circuit
len   02
      01 01      circuit 1, ON
crc   01 79
end   79 dup'ing last byte? Not seen in other versions
 
fischershaw said:
One frustrating thing (besides the fact that Pentair doesn't just release the silly protocol) is that I have not yet determined a way of querying the current heating set points. No 0x08 packet is generated unless a 0x88 packet is first sent. So you can't see the heating set points until a Remote device (which could be the driver) sets them. Not a problem after the data has been acquired, but still annoying.
 
The 0x08 command is sent by the controller every 2 minutes.  That makes it a bit of a pain for testing when you're resetting things a lot but it works. 
 
Have you had any luck decoding the bits that show pool and spa heater source and state?
 
Steve
 
 
 
Definitely had success with both the source and state. Look in the Pentair driver source file pitController.cpp I uploaded (pit.zip in Premise downloads section ) for "HeatMode" and "HeatingStatus" properties.
 
Thanks! I don't know how i missed the heat source stuff. For some reason I was focusing on the last few bytes of the status packet.
 
Steve
 
What specific 485 adapters are you using on your PC?  I'd like to play with this connected to a jandy system and see if I can crack the protocol.  Also, is there any documentation on figuring out baud rates and settings?
 
Thanks.
 
Back
Top