1. A method of configuring a home multimedia system, comprising: accessing, by software executing on a controller of the home multimedia system, data structures that include: component profiles describing attributes of components of the home multimedia system, wherein the components include at least one audio/video (A/V) device, telephony device, lighting device, heating ventilation and cooling (HVAC) device, automatic shade or blind device, or electronic door lock, and the attributes of a component include at least a set of commands that the component recognizes as well as one or more functions the component is capable of performing, one or more zone configurations that indicate components that are present in one or more zones of a structure associated with the home multimedia system, and one or more connection configurations that indicates how components that are present in the one or more zones are interconnected; applying, by the software executing on the controller, a set of predefined service rules to the data structures to generate workflows for possible services, wherein each service rule defines one or more components and one or more interactions required for providing a corresponding service, and each workflow indicates how one or more of the components that are present in the one or more zones interact to provide a service; generating executable forms of the workflows; and executing the executable forms of the workflows to provide services to a user.