Register your DER device with the utility's IEEE 2030.5 server, obtaining a device certificate via the EST (Enrollment over Secure Transport) endpoint to establish mutual TLS.
Implement the IEEE 2030.5 resource hierarchy: discover the server's DeviceCapability resource, then traverse to EndDeviceList, FunctionSetAssignments, and DERProgram resources.
Poll or subscribe (via server-sent events on the /edev/{id}/sub endpoint) to DERControl schedules issued by the utility; parse DefaultDERControl for baseline settings and DERControl for time-scoped overrides.
Apply received DERControl parameters (opModConnect, opModEnergize, opModFixedW, opModVoltVar, etc.) to the inverter via the local SunSpec Modbus or CAN interface within the control execution window.
Post DERStatus and DERAvailability resources back to the server at the poll rate specified in the server's pollRate attribute, reporting current operating mode and available capacity.
Run conformance tests using the SunSpec CSIP Conformance Test Procedures (latest version from sunspec.org) before submitting for utility certification.
Known gotchas
Certificate chain validation is strict under CSIP; the device certificate must chain to the utility-accepted root CA, and clock skew greater than a few minutes will cause TLS handshake failures — always sync NTP before attempting connection.
DERControl schedules have a mandatory response via DERControlResponse within the replyTo interval; missing the acknowledgment causes the utility server to flag the device as non-responsive and may trigger a default curtailment.
CSIP-AUS and California CSIP (Rule 21) have diverged in profile requirements; code written for one may need additional function sets or different poll intervals to satisfy the other.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp