I have read threads in this forum that deal with the communication of the Pentair Intelliflo pump. Did anybody ever figure out how to do it and can tell me the baudrate, parity, stop bits and the protocol? I gathered from dbean's work it is a binary protocol with a checksum. My Intelliflow (it is standalone) will not talk to me at all, nor is it emitting any messages.
The protocol uses 9600-8-N-1 over two wire (half duplex) RS-485. I use it without flow control. I dont know if that's intended however. I do get the odd checksum error on occasion but havent bothered to track them down. I havnt figured out much more about the hardware. They dont seem to terminate the RS485 bus but do imply that you can put quite a few devices on it. I've noticed that it can get unreliable with just 5 devices.
I use my pump in conjunction with the the Intellitouch panel and accessories. While I can monitor many of the pump's operating parameters, I havent tried to initiate communication with it. The only control I have over it is by sending "relay" commands to the Intellitouch panel.
Each protocol message seems to follow this format:
00 ff a5 01 <src> <dst> <cmd> <dlen> <data*dlen> <csH> <csL>
It's hard to say if the '00 ff a5 01' is an end marker followed by a header or if it is the message separator. For my purposes, treating the sequence as a message separator works great. <src> <dst> <cmd> and <dlen> are all one byte. I am not sure that <src> and <dst> are really the source and destination of the message, but I have found some correlation between the messages generated and pushing buttons on the control panel. The <cmd> field says how to interpret the message data while <dlen> says how many bytes are in the message. <csH> and <csL> are the high and low order bytes of the checksum.
The checksum is nothing fancy. It's just an unsigned two byte integer sum of the data bytes in the message starting and the a5 and including everything up to the <csH>. Because the 'a5 01' is included in the checksum I suspect that those bytes are actually part of the message, like a protocol version or something. This would make the 'ff' a start of message and the '00' an end of message. But like I said before, it doesnt really matter unless you can figure out what the 'a5 01' really mean.
Armed with this information and an already functioning system, you too can start decoding messages. I when had the time, I would just push buttons and watch what happened on the wire. Much of it was really obvious (date, time, temp, pump speed and power) and much of it wasnt (programming the pump schedule).
With luck I'll have the the time to open my pool soon and start playing again.