What VPP adds
A device needs a connected tariff at its location to enroll, and the enrollment waits at step
AWAITING_TARIFF until one exists.
Capabilities
Capabilities set eligibility, dispatch limits, supported settings and the state blocks a device reports.- When hardware changes, update the device with the full
capabilitiesobject. Flatpeak recomputes all four anddevice.updatefires. device_typecannot change while the device is enrolled; the update returns422.- Capability blocks name parts (
battery,evse), whiledevice_typenames products (BATTERY_STORAGE). An electric vehicle has abatteryblock and is not aBATTERY_STORAGE.
What the VPP operator sees
A VPP operator sees nothing until a user consents, and then only that device, under that program.
Consent is per scope:
TELEMETRY, CONTROL, LOCATION, SETTINGS. The user can withdraw it in your app or the VPP operator’s app, which suspends the enrollment.
What reaches your backend
Flatpeak bounds every instruction to the device’s capabilities, the user’s settings and consent before it reaches you. See Guardrails.
Grid standards
Each standard belongs to one hop between the grid and the device. You own the last two.
You do not implement IEEE 2030.5. Ride-through, anti-islanding and other protection stay in your firmware, and Flatpeak never overrides them. When protection cuts a committed window, deliver what is safe; meter records show the deviation.

