Authenticate to an OpenSprinkler controller with its MD5-hashed device password and read controller status
domain: opensprinkler.github.io · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Compute the lowercase MD5 hash of the controller's plaintext device password (factory default is "opendoor"); every API call authenticates via this hash in the pw query parameter — there is no token or OAuth.
Call GET http://<os-ip>/jc?pw=<md5> to read controller variables: en (enabled), sbits (per-zone on/off bitfield), rd/rdst (rain delay state), sn1/sn2 (sensor states), and ps (per-station program status).
Call GET http://<os-ip>/jn?pw=<md5> for station names/attributes, and GET /js?pw=<md5> for a simple sn[] on/off array plus nstations.
Get everything in one round trip with GET /ja?pw=<md5>, which combines /jc, /jo, /jn, /js, and /jp.
To rotate the device password, send GET /sp?pw=<old_md5>&npw=<new_md5>&cpw=<new_md5>; npw and cpw must match exactly or the controller returns error code 3 (Mismatch).
Known gotchas
The MD5 hash must be lowercase hex; an uppercase hash is rejected as invalid even when the underlying password is correct — a common first-integration bug.
/db (debug info) is the only endpoint that doesn't require pw; every other endpoint returns error code 2 (Unauthorized) without a valid password hash.
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?