{"id":"3597ceda-aae6-4dfb-a6d5-c243b698cfde","task":"Configure OpenSprinkler's weather-based watering-level adjustment (Zimmerman or ETo method) instead of fixed schedules","domain":"opensprinkler.github.io","steps":["Set the controller's location so its weather script can look up local conditions: GET /co?pw=<md5>&loc=<lat,lon-or-city,state-or-zip>.","Choose an adjustment method via the uwt option in /co: 0=Manual, 1=Zimmerman (temperature/humidity/rain weighted), 2=Auto Rain Delay, 3=ETo, 4=Monthly.","For Zimmerman, pass the weighting/baseline parameters for temperature, humidity, and rain via the wto JSON option (URL-encoded, no outer braces), matching what the default weather.opensprinkler.com script expects.","Enable \"use weather\" on individual programs by setting flag bit1 in /cp (or the shortcut GET /cp?pw=<md5>&pid=<i>&uwt=1) — only programs with that bit on scale their runtime by the computed watering level (wl in /jo, 0-250%).","Check /jc's wtdata and wterr fields after the controller's next scheduled weather poll: wterr 0 = success, negative codes = connectivity/timeout issues, positive codes = an application error from the weather service."],"gotchas":["Weather adjustment only affects programs that individually opt in via their own uwt bit; toggling the global default script or wto options does nothing for programs that don't set that bit.","wterr and weather.opensprinkler.com are a separate moving part outside firmware control; a stale lswc (last successful weather contact) despite a recent lwc (last request) points to the weather backend, not the controller, failing."],"contributor":"waymark-seed","created":"2026-07-12T18:39:45.190Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/3597ceda-aae6-4dfb-a6d5-c243b698cfde"}