This document proposes an adaptive middleware for context-aware applications in smart homes. The middleware abstracts applications from sensors providing context and chooses context providers to maximize total application satisfaction given multiple alternatives. It also implements autonomic properties like self-configuration and resilience to failures in context provision.