The described technology relates generally to a system for controlling environmental conditions and, more particularly, to a computer system architecture for controlling the environmental conditions.
A large environment, such as an office building, a factory, or a large house, may have many environmental conditions that can be controlled. These environmental conditions may include lighting, room temperature, ventilation, other environmental conditions that may be electrically controlled, and so on. For example, such a large environment may have hundreds or thousands of lights that can be turned on or off or placed in an intermediate state using a dimmer. Multiple lights within such an environment may be wired to a single circuit. All the lights on a single circuit are controllable as a unit and are thus in the same state. For example, all lights on a circuit may be at 50% intensity when a dimmer is used. The lights in such large environments are typically controllable by light switches and a computer system. Light switches may be located throughout the environment in areas near where the lights are located. For example, in a large house, a light switch for controlling lights within the kitchen may be located in the kitchen itself. Computer systems have been developed to control the turning on and turning off of lights within such environments. For example; a computer system that controls the lighting of a building may automatically turn off certain lights at night to conserve energy. These computer systems for controlling lights are generally remotely from the lights and centrally located in that a computer system at one location can control all the lights.
Other environmental conditions also have manual controllers that may be located throughout the environment and a computer system controller that is centrally located. For example, a heating system may have a temperature control device located in each room of a house to control the temperature within the room, and a central heating system controller to control the temperature in any room. A person either sets the temperature for a room at the control device in the room or at the central controller.
The use of only such a locally located controller and a central computer system for controlling the environmental conditions has several disadvantages. For example, a person in one area who would like to control the environmental conditions in an adjacent area would typically either need go to the other area to adjust the environmental conditions or go to the central computer system and request that the computer system change the environmental condition in that other area. Another disadvantage is that the user interface of such a central computer system is typically cumbersome. It may be difficult to browse through and locate the user interface for controlling the desired environmental condition in the desired room. Also, it may be difficult for a user to fully appreciate the effects of the change (e.g., actual level of light intensity) unless that person is actually in the room. It would be desirable to have a technique that would overcome these disadvantages.
A method and system for controlling environmental conditions is provided. In one embodiment, the environment controlling system provides a lighting system that controls the lighting of the environment. The lighting system provides an architecture that includes a scene description data structure. A scene defines one or more circuits and a target state for the lights on those circuits. The scene description data structure specifies circuits within a scene and specifies a target state for the lights on those circuits within a scene. The lighting system provides a lighting gateway that retrieves and provides scene descriptions to assist in generating a user interface for enabling scenes (i.e., putting the lights of the circuits of the scene in the target state), and that receives requests to enable scenes and then requests a lighting controller to enable the target state for each circuit within the scene. Each space (e.g., area or room) within the environment has a lighting component that provides a standard programmatic interface to control the lights for that space. The lighting component retrieves scene descriptions from the lighting gateway and receives requests from a user control point device to enable a scene and then forwards the requests to the lighting gateway. The lighting system also allows for the specifying of groups of lights within a space. Each user control point device is associated with a primary group of lights. For example, the primary group of lights would typically be the circuits of lights within the room in which the user control point device is located. The lighting system initializes the user control point device to display a user interface for controlling the primary group of lights. A user can request the lighting system to display the user interface for another group of lights at that user control point device. Thus, the lighting system allows lights from multiple spaces to be controlled by a single user control point device located in one space. The lighting system also provides a feedback technique that notifies a user that the lighting controller has been successfully notified to enable a scene as requested by the user.
The environment controlling system also provides an overall architecture for controlling the environmental conditions in a distributed object environment. In one embodiment, a group of environmental conditions is associated with each space. A software component associated with the space provides a software component that is customized to each environmental condition that is related to that space. The software components provide an interface between a user interface component and an environmental gateway. The user interface component provides a user interface for controlling and viewing the environmental conditions. The environmental gateway receives commands for each of the associated software components and controls the environmental conditions through an environmental controller. In one embodiment, each environmental gateway controls one type of environmental condition.