ISO/IEC IEC 29341-6-13 — UPnP Low Power — Part 6-13: Power Save Service

Architecture, State Variables, and Practical Implementation for Power-Aware UPnP Networks

The ISO/IEC 29341-6-13 standard defines the Power Save Service within the UPnP Low Power architecture. This service enables UPnP devices to advertise and manage power-save capabilities, allowing control points to coordinate sleeping schedules across a home or enterprise network. As the Internet of Things (IoT) expands, the ability for devices to enter and exit low-power states without breaking connectivity becomes a critical design requirement.

Implement the Power Save service as a standalone UPnP service on battery-powered sensors. Pair it with the Power Control service (6-17) to allow remote wake-up while keeping average current draw below 50 µA in sleep mode.

Service Architecture and State Variables

The Power Save Service exposes a set of state variables that describe the device’s power-save capabilities and current status. The two primary classes of variables are Capabilities and Status.

State VariableTypeDescription
PowerSaveCapabilitiesstring (CSV list)Comma-separated list of supported sleep modes: “deepSleep”, “lightSleep”, “standby”, “hibernate”
PowerSaveStatusstringCurrent power mode: “awake”, “lightSleep”, “deepSleep”, “standby”, “hibernate”, “waking”
SleepDurationui4 (seconds)Duration of the current or pending sleep period
WakeupTimeoutui4 (seconds)Maximum time the device needs to return to full operation
AutoSleepEnabledbooleanIndicates whether autonomous sleep transitions are permitted
A well-designed Power Save Service can reduce overall network power consumption by 40–60% in a typical smart-home deployment by allowing the control point to coordinate sleep cycles across dozens of devices.

Actions and Control Semantics

The service defines several UPnP actions that a control point invokes to query or change power-save behavior:

  • GetPowerSaveCapabilities() — Returns the list of sleep modes the device supports. Invoke during initial discovery to populate the device profile.
  • GetPowerSaveStatus() — Returns the current power state. Poll this periodically (every 30–60 s) to track device availability.
  • SetSleepDuration(NewSleepDuration) — Requests a specific sleep interval. The device may negotiate the actual duration; the response confirms the accepted value.
  • EnableAutoSleep(NewAutoSleepEnable) — Enables or disables autonomous sleep transitions. When enabled, the device may enter sleep based on its own heuristics; when disabled, only explicit control-point commands trigger state changes.

The state-transition model guarantees that a device in any sleep mode will return to “awake” within the time advertised by WakeupTimeout. This guarantee is essential for real-time control applications such as lighting or HVAC.

Do not rely solely on GetPowerSaveStatus() for liveness detection. A device in “deepSleep” may not respond to control-point queries at all. Instead, subscribe to event notifications for state-change alerts and use a watchdog timer at the application layer.

Engineering Design Insights

When integrating the Power Save Service into a product, consider these practical guidelines:

Network-Layer Coordination. The UPnP Low Power architecture allows the control point to be the central scheduler, which simplifies device firmware. However, for resiliency, devices should implement a local timeout that forces wake-up even if the control point becomes unreachable. This prevents the network from collapsing into an unrecoverable sleep state.

Never combine aggressive sleep timers (<30 s) with AutoSleepEnabled=true on devices that serve as UPnP event subscribers. The control point will miss critical event notifications, leading to desynchronized state across the network.

Battery Life Trade-Off. A sensor reporting temperature every 5 minutes can achieve a 2-year battery life on a CR2032 coin cell if the Power Save Service is tuned correctly: wake → send measurement → sleep within 200 ms. The WakeupTimeout variable should reflect worst-case crystal startup time plus radio re-association delay.

Frequently Asked Questions

Q: Can a device support the Power Save Service without supporting the full Low Power architecture?
A: Yes. The standard allows individual services to be implemented independently. A device can offer Power Save without Energy Monitoring (6-14) or Power Alert (6-15), though combining them provides richer energy management.
Q: How does the Power Save Service interact with DHCP lease renewal?
A: When a device wakes from deepSleep, it should renew its DHCP lease immediately. Design the sleep duration to not exceed 50% of the DHCP lease time to avoid IP address conflicts.
Q: What is the recommended polling interval for GetPowerSaveStatus()?
A: For battery-powered devices, poll no more frequently than once per 60 seconds. For mains-powered devices, 10–30 seconds is acceptable.
Q: Is there a mandatory minimum set of state variables?
A: All state variables listed in the standard are optional, but at minimum a service implementation should expose PowerSaveStatus and WakeupTimeout for basic interoperability.

📥 Standard Documents Download

🔒
Please wait 10 seconds, the download links will appear after the ad loads

Leave a Reply

Your email address will not be published. Required fields are marked *