Create, update, or delete an OpenSprinkler watering program via the JSON program API
domain: opensprinkler.github.io · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Read existing programs with GET /jp?pw=<md5> to see the encoded [flag, days0, days1, [start0..3], [dur...], name, [endr,from,to]] structure and current limits (default max 40 programs, 4 fixed start times each).
To add a new program, send GET /cp?pw=<md5>&pid=-1&v=[<flag>,<days0>,<days1>,[<starts>],[<durations>]]&name=<urlencoded name>; pid=-1 appends, any other in-range pid overwrites that program.
Decode/encode the flag bitfield carefully: bit0=enabled, bit1=use-weather, bits2-3=odd/even restriction, bits4-5=start-day type (weekly/single-run/monthly/interval), bit6=start-time type (repeating vs fixed), bit7=date-range enabled.
For a date-restricted program (e.g. winter-only), also pass from/to as (month<<5)+day values, e.g. Nov 1 = 353, Feb 3 = 67.
Delete with GET /dp?pw=<md5>&pid=<index> (or pid=-1 for all programs), and reorder with GET /up?pw=<md5>&pid=<index> to move a program one slot earlier.
Known gotchas
Passing en= or uwt= on a /cp call makes the firmware ignore every other parameter and only toggle that one bit — you cannot flip the enabled bit and edit the schedule body in the same call.
The per-station duration array length must exactly match the controller's total station count (main board plus expansion boards) or the update is rejected with a data-format error.
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?