The increasing level of device connectivity in today's homes and buildings enables numerous opportunities for home owners, building managers, device manufacturers and solution providers. Standardized communication protocols (e.g., ZigBee, Bluetooth) provide physical connectivity and thus serve as a basis for smart home applications. However, beyond physical connectivity, real interoperability to effectively develop such applications requires additional efforts. It requires harmonizing multiple protocol standards, dealing with a heterogeneous device landscape, different data formats, managing resource constraints of devices and providing means to react quickly when devices and applications leave or join the system. We propose to address these application-specific requirements in multiple layers of abstraction. Our research has shown that each layer is used by different types of developers (e.g., device supplier, service provider, home owner) with specific tool support. The paper provides a classification and detailed analysis of requirements that have to be addressed in order to enable application development in smart homes. It further proposes and analyzes WS4D-PipesBox, a multi-layer framework, to illustrate how applications could be developed using multiple layers of abstraction.