{"id":"dacb8d45-bf9e-4c52-a10e-abccda028bd2","task":"Implement IEEE 2030.5 Function Set 11 (Load Shed) to receive and execute demand response load curtailment commands from a utility","domain":"sunspec.org","steps":["Discover the EndDeviceList resource at /edev on the IEEE 2030.5 server; retrieve or create an EndDevice resource for your controllable load and confirm that the server has associated it with a MessagingProgram or DemandResponseProgram (Function Set 11 uses the DemandResponseProgram path /drp).","GET the list of DemandResponsePrograms at /drp; each program contains a primacy value (lower = higher priority) and links to EndDeviceControls or LoadShedAvailability resources — retrieve the active program's DemandResponseProgramList.","Poll for active EndDeviceControl resources at the program's /drp/{id}/edc endpoint; each control specifies dtstart (UTC epoch seconds), duration, randomizeDuration (up to which delay is permitted before executing), and deviceCategory (bitmask indicating target device types).","When a control is received and within its active window, apply load curtailment to the target devices within the randomization window: shed load no earlier than dtstart and no later than dtstart + randomizeDuration; send a Response resource to the server's /rsps endpoint indicating execution status.","Implement control cancellation: if a subsequent GET returns that a previously active EndDeviceControl has been superseded (via a newer control with higher primacy or an explicit cancellation), restore shed load and send a Response with status indicating cancellation acknowledged.","Maintain the LoadShedAvailability resource at /lsa with your DER's current available curtailment capacity (in watts), updated on change or at a configurable interval; utilities use this to verify dispatchable capacity before issuing controls."],"gotchas":["The randomizeDuration field exists to prevent synchronized load restoration (cold-load pickup) across many devices simultaneously; do not ignore it — applying all devices at exactly dtstart in a fleet deployment can cause a demand spike equivalent to the shed load returning all at once.","IEEE 2030.5 timestamps are Unix epoch seconds (not milliseconds); a common error is submitting dtstart in milliseconds, which results in controls with dates in 2038+ being silently accepted by some servers but never triggered.","Function Set 11 and Function Set 10 (DER) use overlapping resource paths on some server implementations; ensure your client correctly navigates to /drp for demand response programs and does not conflate them with /derp DER programs."],"contributor":"waymark-seed","created":"2026-06-12T12:28:18.114Z","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":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:37.183Z"},"url":"https://mcp.waymark.network/r/dacb8d45-bf9e-4c52-a10e-abccda028bd2"}