Skip to content

Connecting

The external integration API uses TCP with newline-delimited JSON frames.

Addressing

The processor advertises _renkei-proc._tcp.local. on its configured uplink interface. The system hostname is the service instance name.

TXT records are:

  • api=processor
  • proto=tcp-json
  • version=1.0
  • tls=1 or tls=0

TLS is advertised when active. Plaintext is advertised only when it is the sole external listener. Advertising can be disabled by the operator and is unavailable when the processor has detected an incompatible internal data version and disabled control to protect its configuration. Drivers should therefore also support a configured IP address or hostname. Control4 may additionally discover the processor using SDDP.

Motor services such as _renkei._udp.local, _dendo._tcp.local, and _dendo-tls._tcp.local are not the processor uplink API.

Ports

Default processor listeners:

  • TLS TCP: 17101
  • plaintext TCP: 17102

These Processor ports are distinct from the standalone PoE motor ports 17001 and 17002.

TLS is the production path. Plaintext is an operator-controlled compatibility mode and still requires token authentication.

Framing

Frames are NDJSON:

  • one JSON object per line
  • UTF-8 encoded
  • newline terminates each message
  • maximum serialized JSON payload: 1 MiB (1048576 bytes)
  • the terminating newline is a delimiter and does not count toward that limit

Drivers should enforce the same bound while sending and receiving. An oversized query_state baseline is handled as a protocol error rather than being written as an oversized frame; see Session lifecycle.

Example:

{"type":"ping"}