4/2/2022 Updated to put links back in.
4/4/2020 Updated
I apologize for the delay, can still on post one message in a 24 hour period. I was finally able to get the
Python code to work.
Documented
Message to place the Pump in Remote Control mode
96,16,4,1,255,2,25
- The first issue I had to overcome was understanding that address 1 in the Pump is really address 96 on the RS485 network.
- The second issue was getting the python program to calculate the correct checksum. This was accomplished by adding the 165,0 prefix to the message. With the prefix now part of the message the proper checksum (537) can be calculated that matches the documented message.
165,0,96,16,4,1,255,2,25 (2*256)+25 = 537
- The Third issues was getting the pump to respond to the message. This was accomplished by added the header (255,0,255) in front of the prefix (165,0). Once we added the header to the message the pump responded and went into remote mode.
255,0,255,165,0,96,16,4,1,255,2,25
So I was able to get the following
messages to work:
- Request Status Message: 96,33,7,0,1,28 (must read 26 integers to get the response) (My source address is 33)
Send: 255, 0, 255, 165, 0, 96, 33, 7, 0, 1, 45 --> Checksum 301 = (1*256)+45
Recv: 255, 0, 255, 165, 0, 33, 96, 7, 15, 10, 2, 2, 0, 53, 4, 76, 0, 3, 0, 0, 0, 0, 5, 48, 2, 7
- Remote Control Message: 96,33,4,1,255,2,42
Send: 255, 0, 255, 165, 0, 96, 33, 4, 1, 255, 2, 42 --> Checksum 554 = (2*256)+42
Recv: 255, 0, 255, 165, 0, 33, 96, 4, 1, 255, 2, 42
- Local Control Message: 96,33,4,1,0,1,43
Send: 255, 0, 255, 165, 0, 96, 33, 4, 1, 0, 1, 43 --> Checksum 229 = (1*256)+43
Recv: 255, 0, 255, 165, 0, 33, 96, 4, 1, 0, 1, 43
- Start Pump Message: 96,33,6,1,10,1,55
Send: 255, 0, 255, 165, 0, 96, 33, 6, 1, 10, 1, 55 --> Checksum 311 = (1*256)+55
Recv: 255, 0, 255, 165, 0, 33, 96, 6, 1, 10, 1, 55
- Stop Pump Message: 96,33,6,1,4,1,49
Send: 255, 0, 255, 165, 0, 96, 33, 6, 1, 4, 1, 49 --> Checksum 305 = (1*256)+49
Recv: 255, 0, 255, 165, 0, 33, 96, 6, 1, 4, 1, 49
- Set Pump Speed #: 96,33,5,1,3,1,47 (p1 = 2, p2 = 3, p3 = 4, p4 = 5)
Send: 255, 0, 255, 165, 0, 96, 33, 5, 1, 3, 1, 47 --> Checksum 303 = (1*256)+47
Recv: 255, 0, 255, 165, 0, 33, 96, 5, 1, 3, 1, 47
I would like to be able to tell the pump to run a specified RPM or GPM. I attempted to use the "set pump to rpm speed" (Action 1, Mode 4,196) command it took the message and returned and error.
My Set Pump to RPM Speed Message: 96,33,1,4,4,196,7,108,2,102 --> 1900rpm = (7*256)+108
Send: 255, 0, 255, 165, 0, 96, 33, 1, 4, 4, 196, 7, 108, 2, 102 --> Checksum 614 = (2*256)+102
Recv: 255, 0, 255, 165, 0, 33, 96, 255, 1, 8, 2, 46 (This is an error response but not sure what it [1,8] means)
Can anyone share the proper way to tell the pump to run a specified speed?
Thanks in advance