An IoT enabled smart-home fulfils many needs of the inhabitants such as providing conveniences through personalised home automation, saving energy through optimizations, etc., based mostly on the user’s behaviour and interaction with these devices. This research proposes a methodology to build a system that learns user’s habits/preferences in a given situation, merges them with contextual information and finally recommends relevant automation services, which the user would like to perform at that instance. The user preferences are learned using unsupervised algorithm such as association analysis, trained upon inhabitant’s prior interactions captured passively through the IoT enabled sensors while they live their daily lives. The contextual information, such as location, time, etc. are extracted from the given data. The preferences and the contextual information are fed to supervised learning algorithms to predict desired user action on the basis of current sensor outputs and the contextual setting at that moment.