Interacting with intelligent systems in general and ambient intelligent systems in particular, requires that these systems have the ability to build a trust relationship with the users. The ability to explain its own behaviour is one of the most important abilities that such a system can exhibit to gain trust. We argue that explanations are not just an addition to an ambient intelligent system rather it is an approach to the design and implementation of such a system. Explanations are useful both for the reasoning process itself and as a means of communicating with the users. In this paper, we present a knowledge intensive approach for identifying different contexts and generating a course of action depending on the context found. We explore the use of explanations both as a means of reasoning and as a means of communication with the user.