The ISO/IEC 29341-6-17 standard specifies the Power Control Service within the UPnP Low Power architecture. This service provides the mechanism for remotely switching device power states, scheduling power-on and power-off events, and participating in load-shedding programs. It is the primary actuation service in the Low Power service suite, translating energy management decisions into physical power-state changes.
The Power Control Service operates on three levels: immediate switching (turn on/off now), timed switching (on/off at a scheduled time), and demand-response switching (participate in external load-shedding signals). Implement all three for maximum interoperability.
Power State Machine and Scheduling Variables
The service defines a deterministic power state machine with the following primary states and transitions. The state model supports both simple on/off devices and devices with multiple power modes (e.g., fan speed + heater power).
| State Variable |
Type |
Description |
| PowerState |
boolean / ui1 |
Primary on/off state (boolean) or multi-level power state (0–255 for dimmer-style control) |
| TargetPowerState |
boolean / ui1 |
Desired power state; the device transitions to this state asynchronously |
| ScheduleEnabled |
boolean |
Whether the timer schedule is active |
| TimeOn |
string (HH:MM) |
Scheduled power-on time in 24-hour format |
| TimeOff |
string (HH:MM) |
Scheduled power-off time in 24-hour format |
| DemandResponseMode |
string |
Current DR mode: “normal”, “reduce”, “critical”, “emergency” |
| PowerLimit |
ui4 (W) |
Maximum allowed power draw in the current DR mode |
In field trials, scheduled power control using the Power Control Service reduced standby energy consumption by 68% in office environments, simply by turning off non-essential equipment during unoccupied hours.
Control Actions and DR Integration
The service provides the following actions for power state management:
- SetPowerState(NewPowerState) — Immediately sets the power state to the specified value. For boolean devices, 0 = off, 1 = on. For multi-level devices, 0–255 provides granularity for dimming or speed control.
- SetSchedule(NewTimeOn, NewTimeOff, NewScheduleEnable) — Configures the daily on/off schedule. The device maintains this schedule in local real-time clock (RTC) memory, executing transitions even if the control point is offline.
- GetSchedule() — Returns the current TimeOn, TimeOff, and ScheduleEnable values.
- SetDemandResponseMode(NewDRMode, NewPowerLimit) — Places the device into a demand-response mode. In “reduce” mode, the device limits power to the specified PowerLimit. In “critical” or “emergency” mode, the device may shed non-essential loads entirely.
- GetDemandResponseStatus() — Returns the current DR mode, power limit, and estimated load-shed contribution in watts.
The demand-response integration follows the OpenADR 2.0b profile, mapping OpenADR event signals to the service’s DR mode states. This allows UPnP-based home networks to participate in utility DR programs without requiring a separate gateway protocol translation layer.
When implementing SetDemandResponseMode(“emergency”), ensure the device provides a manual override mechanism (physical button or local API) that restores normal operation. An automatic load-shed that cannot be manually overridden creates a safety hazard and violates most electrical codes.
Engineering Implementation Guide
State Transition Timing. When a SetPowerState command is issued, the device should acknowledge the command immediately (within 200 ms) but may take longer to physically transition. Use TargetPowerState to signal the intent and PowerState to confirm actual completion. Control points should poll PowerState every 500 ms during a transition to detect completion.
On a smart plug controlling a refrigeration load, never schedule a power-off cycle longer than the food-safety holdover time of the refrigerator. Most food-safety standards limit power-off to 4 hours maximum. Use the Power Alert Service (6-15) to monitor temperature during scheduled off periods.
DR Mode Priority. When a device receives conflicting commands (e.g., a schedule says “on” but DR mode says “off”), the demand-response mode takes priority. After the DR event expires, the device reverts to the scheduled state. This priority hierarchy ensures that grid stability commands always override local schedules while maintaining the ability to resume normal operation automatically.
Frequently Asked Questions
Q: Can the Power Control Service control individual outlets on a multi-outlet power strip?
A: Yes, by implementing separate service instances for each controllable outlet. Each instance has its own PowerState, schedule, and DR mode. The parent device manages the physical isolation between outlets.
Q: What happens to the schedule during a power outage?
A: The device should store the schedule in non-volatile RTC-backed memory. After power is restored, the device checks the current time against the schedule and resumes normal operation. If the RTC battery is depleted, the schedule reverts to factory defaults.
Q: How does the Power Control Service interact with the Power Save Service (6-13)?
A: Power Control manages the operational power state (on/off), while Power Save manages sleep/wake cycles. A device can be “on” (Power Control) but “asleep” (Power Save). The Power Save service suspends operation without fully disconnecting power.
Q: What is the minimum polling interval recommended for TargetPowerState?
A: 500 ms is recommended for reactive loads (lighting, displays). For loads with long transition times (HVAC compressors, electric water heaters), 2–5 seconds is sufficient.