Smart Home Device Management
This page describes an integration pattern for carrying smart home device identity, household privacy policies, and automation rules across IoT ecosystems using Universal Manifest.
Boundary: normative vs non-normative
Section titled “Boundary: normative vs non-normative”- Normative contract: Specification and Conformance
- Non-normative guidance: this page
All smart home-specific claims, pointer names, and consent keys on this page are explicitly non-normative.
What you implement
Section titled “What you implement”Inputs
Section titled “Inputs”- A valid Universal Manifest (
um:Manifest) with a household or devicesubjectidentifier - Network-local resolver or discovery mechanism to fetch the home manifest
- Device capable of reading and applying household policies
Outputs
Section titled “Outputs”- Policy-compliant device behavior (telemetry, remote access, location sharing)
- Deterministic handling for expired or unavailable home manifests
- Device registration acknowledgment to the home automation platform
Minimum behaviors
Section titled “Minimum behaviors”- Enforce TTL and re-fetch the home manifest periodically
- Check consent keys before any outbound data transmission (default deny)
- Ignore unknown fields safely
- Apply household policies consistently across device types
Use cases
Section titled “Use cases”- Device onboarding: A new smart thermostat joins the home Wi-Fi. It discovers and reads the home manifest, applies the “no telemetry” policy, and registers itself — all without manual setup.
- Privacy enforcement: The home manifest says
home.shareUsageData: denied. Every device on the network suppresses outbound usage telemetry to manufacturers. - Energy management: An energy provider reads the home manifest (with consent) to enroll the household in a demand-response program, adjusting thermostat schedules during peak hours.
Suggested shards
Section titled “Suggested shards”| Shard Name | Purpose | Key Entity Fields |
|---|---|---|
deviceIdentity | Device registration and capability info | deviceName, manufacturer, model, firmwareVersion, capabilities |
homePolicy | Household-wide privacy and behavior rules | policyName, dataRetention, telemetryPolicy, guestAccessPolicy |
automationRules | Automation scenes and trigger configurations | ruleName, trigger, action, schedule, enabled |
Suggested pointer names
Section titled “Suggested pointer names”home.manufacturer.firmware— manufacturer’s firmware update endpointhome.assistant.config— home automation platform configuration (e.g., Home Assistant API)home.energyProvider— energy provider’s demand-response or usage API
Suggested consent keys
Section titled “Suggested consent keys”home.shareUsageData— gates sharing of device usage data with manufacturers or third partieshome.allowRemoteAccess— gates remote management connections from outside the home networkhome.shareLocation— gates sharing of household geographic location
Consumers should default to deny for any household data use not explicitly consented to.
Suggested claim keys
Section titled “Suggested claim keys”home.deviceOwnership— owner, guest, or managedhome.networkRole— hub, endpoint, bridge, or sensor
Example fixture (excerpt)
Section titled “Example fixture (excerpt)”{ "@context": "https://universalmanifest.net/ns/universal-manifest/v0.1/schema.jsonld", "@id": "urn:uuid:1a2b3c4d-5e6f-7890-abcd-ef1234567890", "@type": "um:Manifest", "manifestVersion": "0.1", "subject": "did:key:z6MkpSmartHomeNetworkExampleDid", "issuedAt": "2026-02-26T12:00:00Z", "expiresAt": "2026-03-05T12:00:00Z", "shards": [ { "@type": "um:Shard", "name": "homePolicy", "entity": { "@id": "urn:uuid:2b3c4d5e-6f78-9012-bcde-f12345678901", "@type": ["um:Entity"], "name": "Rivera Household Privacy Policy", "policyName": "default-private", "dataRetention": "local-only", "telemetryPolicy": "none", "guestAccessPolicy": "restricted" } }, { "@type": "um:Shard", "name": "deviceIdentity", "entity": { "@id": "urn:uuid:3c4d5e6f-7890-1234-cdef-234567890abc", "@type": ["um:Entity"], "name": "Living Room Thermostat", "deviceName": "Ecobee SmartThermostat Premium", "manufacturer": "Ecobee", "model": "EB-STR-02", "firmwareVersion": "4.8.2.107", "capabilities": ["temperature-control", "occupancy-sensing", "voice-assistant"] } } ], "consents": [ { "@type": "um:Consent", "name": "home.shareUsageData", "value": "denied" }, { "@type": "um:Consent", "name": "home.allowRemoteAccess", "value": "denied" }, { "@type": "um:Consent", "name": "home.shareLocation", "value": "denied" } ], "pointers": [ { "name": "home.manufacturer.firmware", "url": "https://firmware.ecobee.com/devices/EB-STR-02/updates" }, { "name": "home.assistant.config", "url": "http://homeassistant.local:8123/api/config" } ]}See the full fixture and implementation details in the integration source.