Where is the API Documentation?

I’ve got a ZADSR32xDPDTPROXR, connected to a XR32xDPDT.

Where is the documentation about how to program this? All I can find are your quick start guides.


All relay control commands are documented in this guide:

If you have any questions on this please let us know.

Thank you,
Travis Elliott


I didn’t look through that because I wasn’t looking for a quick start guide (which, as the name implies, gets you going but isn’t full documentation).

Please recommend to the powers that be to give it a better name.

Also, don’t use the term “tutorial” in something that is documentation. Again, it implies that what is presented is but a sample of what is available, and that another supporting document exists.

I certainly do not disagree with you. :slight_smile:

I’ve read through that web page.

Lots of poor examples.

No concise definition of what messages are available and what data should be provided with said messages.

After several hours I think I’ve decoded what I need to know. But surely you have something more comprehensive than this?

What sort of information are you looking for that is not available in the guide?

I’m looking for something that says:
Command ID:
and then for each data value that can/should follow:
data 0: Bank ID/index (if applicable)
data 1: relay ID/index (if applicable)

Explicit definitions of each command and each word. That doesn’t exist in the “quick start” web page, and not all of the commands described give all of the details, requiring the user to extrapolate then experiment to verify that my extrapolation is correct.

That is the format that every API that I’ve ever encountered has used.

Relay on/off commands are documented in this guide under the Relay Control section:

I know you have already looked at this guide but it’s the best documentation we have for relay control commands.

Yes, I know. As I said, I read then whole thing. You’re not hearing what I’m saying.

Let’s take a specific example: the section on Relay Toggle Commands.

You give 8 examples, but all 8 use the same bank. Or do they? Do I use this command to address banks outside the standard 8 banks on my board? A different command? What is the description of columns 5, 6, & 7?

The repetition of the “170 5” at the start of every command is mind-numbing.
The repetition of the checksum is mind numbing.
Describe them, move on.

You list the response for a properly formed command. What if the command isn’t properly formed? What should I expect? How should I interpret what is to be expected?

What you need to have is a document that says (and I don’t know that the content is valid or not because your documentation has so many holes):

All commands start with a Start of Message (SOM) byte, with value 170, followed by a byte with the number of data body words.

All Data Bodies start with Start of Data (SOD) byte, with value 254. This is followed by a command ID and then any necessary subsequent data bytes, as specified by command.

<now, a section for each command ID>
x.x Relay Toggle
This command …

Data Byte 0/SOD: 254
Data Byte 1/Command ID: 47
Number of subsequent data bytes: 3
Data Byte 2: Relay ID to toggle (valid values: 1-8)
Data Byte 3: Bank ID to toggle (valid values: 0-number of banks daisy-chained together; 0 == all banks)
Data Byte 4: 1 (is it always ‘1’? What is this for? )

Expected Return Value:

TX: 170 5 254 47 0 0 1 221
RX: 170 1 85 0
Result: Relay 1 is toggled in all banks

THAT is what I’m looking for. For every command. I’m assuming that ‘85’ is an ACK from the relay board. What is NACK?

Can you now see all of the holes in the page you’re referring me to? There is so much content on that page that doesn’t do anything to fully communicate how to use your equipment. More is not better. All you need is a small, simple table that describes each command. (“YOU” not meaning you specifically as an individual, but your corporate “YOU”.)

I’ having the same issue. I’d like to be able to control these relays automatically from a program, (aka, turn on relays to open solenoid valves, turn them off 30 seconds later, etc) but I can’t find a description of how the command structure to the device works for example I see in the documentation,

Turning Individual Relays On in Selected Relay Banks

TX: Function: RX:
170 3 254 108 1 24 Turn On Relay 1 in Bank 1 170 1 85 0
170 3 254 109 1 25 Turn On Relay 2 in Bank 1 170 1 85 0
170 3 254 110 1 26 Turn On Relay 3 in Bank 1 170 1 85 0
170 3 254 111 1 27 Turn On Relay 4 in Bank 1 170 1 85 0
170 3 254 112 1 28 Turn On Relay 5 in Bank 1 170 1 85 0
170 3 254 113 1 29 Turn On Relay 6 in Bank 1 170 1 85 0
170 3 254 114 1 30 Turn On Relay 7 in Bank 1 170 1 85 0
170 3 254 115 1 31 Turn On Relay 8 in Bank 1 170 1 85 0

But nothing is defined. I have to assume too much. Is there a document that clearly states what is the protocol,
I can make an educated guess (to turn on a relay you must send 6 bytes beginning with decimal 170,3,254 and the next 3 bytes are [???] but nowhere is it clearly defined what these fields represent. it the relay number the 108-115 (the 4th byte) or is it the 24-31 field (the sixth byte?) the 5th byte, what does the 1 in the 5th byte mean? is that the on value, what if I send other values? A proper API documentation would go a long way into making this device much more useful. I can’t buy it until I know if I can make it control the things I want to.

Very informative post.