Ambient Intelligence aims to enhance the way people interact with their environment to promote safety and to enrich their lives. A Smart Home is one such system but the idea extends to hospitals, public transport, factories and other environments. The achievement of Ambient Intelligence largely depends on the technology deployed (sensors and devices interconnected through networks) as well as on the intelligence of the software used for decision-making. The aims of this article are to describe the characteristics of systems with Ambient Intelligence, to provide examples of their applications and to highlight the challenges that lie ahead, especially for the Software Engineering and Knowledge Engineering communities. In particular we address system specification and verification for the former and knowledge acquisition from the vast amount of data collected for the latter.