HOME CONTROL SYSTEM WITH DISTRIBUTED NETWORK DEVICES

Abstract: Devices within a locale, such as a home, are controlled by detecting the presence of an identified user within different areas of the locale. The devices within the areas are controlled in response to each identified user's preferences. The locating and control devices may be stand-alone devices, or integrated within other electronic devices, such as televisions, stereos, computers, and so on. Also provided in this invention are user task modules that suggest control actions based on the location of the user, the current context, and a profile of the user based upon the user's prior actions. The determination of each user's location is facilitated by the use of a tracker module that the user carries about. The user may determine the degree of automation to be applied at any time.

Description: Home control system with distributed, network devices. This invention relates to the field of consumer devices, and in particular to the field of automated home control systems. Home automation is becoming increasingly popular. Standards continue to be developed which will allow devices of varying types and varying vendors to be controlled by a common controller. Such standards include IEEE 1394, X-10, HANi, HomeAPI, Jini, and the like. IEEE 1394 and X-10 are communication protocols; HANi is a software architecture using IEEE 1394; Home API is an open industry specification that defines a standard set of software services and application programming interfaces which enable software applications to monitor and control home device. Jini is a distributed software architecture (network) wherein clients see devices and services as objects. Jini has a discovery service to enable a device or service to register itself with the network. Jini has a look-up service to enable determining what objects are available. Coherence among the distributed objects is enabled through leasing of objects, i.e., providing control over an object to another object for a predetermined time period. If the system fails, the system is brought back upon termination of the lease to a well defined state. Typical home automation systems are configured to provide a central control station and a number of remote controllers. For example, the central control station may be a home computer, and the remote controllers may be sub-controllers located in particular areas of the home, such as in a master bedroom, entry foyer, and the like. Typical home automation systems may also include remote sensors that are used, for example, to automatically turn lights on or off when motion is detected, or to turn a television set on or off in response to a particular sound or voice command. Some home automation systems allow the desired operations to be preprogrammed, so that, for example, lights or appliances are turned on or off at different preset times, televisions are tuned to different channels at different times, and so on. The preprogramming of a typical home automation system, however, becomes infeasible or impractical except for very routine and commonplace operations. This infeasibility is particularly apparent in a home with multiple occupants. The automated turning on and tuning of a television at a particular time of day is only feasible if all occupants of the home agree, or if it is known a priori that the person who will be in the room with the television at that time would want the television turned on and tuned to the preprogrammed channel. Even a single occupant may find preprogramming infeasible in a multi-room home, particularly if that occupant does not follow a well defined regiment of behavior. That is, for example, the occupant may have a favorite television program, but may view it in different rooms depending upon where the occupant happens to be at the time the program begins. As mentioned above, a preprogrammed home automation system typically utilizes a central controller to effect the preprogrammed actions. As such, the automated control is directly dependent upon the reliability and availability of the central controller. The central controller in most home automation systems is typically the home computer, which is often used for other applications as well. When used as the home automation controller, care must be taken to assure that the computer remains in operation and that the controller application continues to run independent of the other applications. A "crash" of the computer or the controller application will typically disable a significant portion, if not all, of the home automation system. Alternatively, a dedicated central controller is often utilized as the central controller, eliminating the likelihood of a crash caused by another application, but the options available on such dedicated controllers are typically limited compared to those available on a general purpose home computer. It is an object of this invention to provide an infrastructure for the use of control modules that are distributed in a network of devices. It is a further object of this invention to provide a system and method to facilitate the automated control of devices within a home environment. It is another object of this invention to provide a system and method for creating a profile of use for each user of the system, and controlling the consumer electronic devices based on this profile. It is a further object of this invention to increase the reliability and versatility of home control systems. It is a further object of this invention to allow for an easy system configuration and setup. These objects and others are achieved by providing a distributed network of locator devices and control devices throughout a locale, such as a home. Devices within the locale are controlled by detecting the presence of an identified user within different areas of the locale, and coordinating the control of appliances within the area in response to this user's presence or absence. The locating and control devices may be stand-alone devices, or integrated within other electronic devices, such as televisions, stereos, computers, and so on. Also provided in this invention are user task modules that suggest control actions based on the location of the user, the current context, and a profile of the user based upon the user's prior actions. Communications among the modules and devices are effected using standard network systems and protocols, including IEEE 1394, X10, HANi, and HomeAPI. The determination of each user's location is facilitated by the use of a tracker module that the user carries about. The user may determine the degree of automation to be applied at any time. The invention is explained in further detail, and by way of example, with reference to the accompanying drawings wherein: FIG. 1 is an example block diagram of a home control system in accordance with this invention. FIG. 2 is an example data flow diagram of a home control system in accordance with this invention. FIG. 3 is an example flow chart for a control module in a home control system in accordance with this invention. FIG. 1 illustrates an example block diagram of a home control system in accordance with this invention. Illustrated in FIG. 1 are four rooms, a family room 100, a kitchen 200, an office 300, and a utility room 400. In each of these rooms are an assortment of devices; in the vocabulary of home control systems, devices that perform a function other than control are termed appliances. Appliances may include control functions, but their "primary" appliance function is not control, per se. In the family room 100 are located a web-tv appliance 110, a television appliance 120, a stereo appliance 130, and light appliances 140. The example web-tv appliance 110 has an appliance function of providing web-access via a television, and also includes a control module CM 114, a user task module UTM 116, and a locator module LM 119. Another control module CM 134 is located in the example stereo appliance 130, and another locator module, LM 190 is located in the family room 100. The illustrated devices and modules are interconnected via a home network 50. To avoid unnecessary clutter, the example connections to the network 50 are illustrated by "X" - labeled terminators. In a preferred embodiment, the communications via the network are in accordance with existing standards. Using the HANi architecture as an example, a HANi-compliant device has, as a minimum, enough functionality to communicate with other devices in the system. During interaction, devices may exchange control and data in a peer-to-peer fashion. This ensures that at the communication level, none of the devices is required to act as the master or controller of the system. On the other hand, it allows a logical master or controller to impose a control structure on the basic peer-to-peer communication model. In like manner, copending US application "Computer-controlled Home Theater With Independent User-control", serial number 08/920,751, filed 8/29/97 for Jeroen Heuvelman et al., and incorporated herein by reference, presents a home entertainment system comprising a sub-system with audio/video functionalities, a computer and a device interface that interconnects the sub-system and the computer. The computer controls the sub-system through a software application The computer and the sub-system have separate user-controls. In case the computer crashes, the user can still control those audio/video functionalities of the sub-system that are independent of the computer. Additionally, copending application "Low Data-Rate Network Representation on High Data-Rate HAVI-Network", attorney docket PHA 23,492, serial number 09/146,020, filed 9/2/98 for Yevgeny Shteyn, presents principles of a home network using the HAVi architecture, and is incorporated by reference herein. Although the paradigm of a home network is used herein, it will be evident to one of ordinary skill in the art that the principles of this invention may be employed in other environments as well, such as hospitals, offices, factories, and the like. Illustrated in FIG. 1 is a tracker 10. In accordance with this invention, each occupant of the home possesses a tracker 10 which is configured to enable the remote identification of the associated occupant. By convention, the location of the tracker 10 is assumed to coincide with the location of the associated occupant, or "user"; the tracker 10, for example, may be a small token that the user carries or wears. When the tracker 10 enters the family room 100, the locators 119 and 190 are configured to recognize it; in so doing, the locator modules 119 and 190 enables the identification of the associated occupant as being located in the family room 100. As will be detailed further, the trackers and locator modules are coupled via a wireless connection, thereby allowing the user to move about freely. The home network 50 may be wired or wireless, or a combination of both. The locating modules 119, 190 communicate the presence of the user associated with tracker 10 to the home network 50; in particular, to control modules 114, 134, and others. In response, the control modules query one or more of the user task modules, including UTM 116 and others, for an appropriate control response. For example, if the user that is associated with tracker 10 normally prefers to hear classical music in the afternoon, user task module 116 will communicate a suggestion to control module 134 to play classical music, if the time of day is the afternoon; if the time of day is morning, the user task module 116 may send a suggestion to the control module 134 to tune to the local news-radio station. In response to one or more suggestions from user task module 116 and others, and in response to other potential rules, the control module 134 communicates the appropriate commands, if any, to the appropriate appliances to effect a chosen response from among the suggestions and rules. For example, one of the rules may be to preclude a change of mode of an appliance in the family room 100 if another user (as indicated by the presence of another tracker) is in the family room 100. As would be evident to one of ordinary skill in the art, priority schemes can be used to determine actions to be taken if multiple trackers are in the same area. In a straightforward embodiment, non-conflicting actions are effected, such as turning lights on if at least one of the users have indicated this preference and the other user has not explicitly expressed an opposite preference, whereas conflicting actions, such as turning a television and a stereo on, are not taken unless one of the users has been given an explicit priority of actions over the other. In a preferred embodiment, each rule or preference for a user is assigned a priority. For example, a priority can be established for a particular user for turning on a light whenever the user enters an area, regardless of conflicts. A lower priority for that same user can be established for turning on a television only if no conflicts exists. In a preferred embodiment, the control modules and user task modules employ knowledge based and machine learning techniques, and others, to determine an appropriate response upon each user's arrival to, or departure from, particular areas of the home. The response is based on prior experiences and feedback from each user, as well as the user's recent history. For example, the response may differ depending upon whether the user arrives in the family room 100 after having been in the kitchen 200, or the office 300. These determinations will also be dependent upon the current context, such as the time of day, the day of the week, and other factors that are determined to be correlated to the user's past behavior, or assumed typical behavior. In a preferred embodiment, the learning techniques are multi-variate in nature, so that a synergy of control is achieved. For example, a learned response may be to lower curtains, dim lights, play soft music, and place the telephone in autoanswer mode in response to a particular set of user patterns, and to keep the area well lit and turn on the radio in response to a different set of user patterns. If a user disagrees with the selected response, the user will typically effect an alternative control response. For example, if the control module 134 turns the stereo 130 on, and the user disagrees with this response, the user will typically turn the stereo 130 off, or effect some other change. In a preferred embodiment, the user responses that immediately follow a control module's execution of a command to an appliance are weighted heavily for training, to effect a potentially different selection by the control module in the future. Subsequent user selections are weighted less for training as the time interval between the control module's action and the user selection increases. For example, if the user listens to the classical music that the control module 134 selects for an hour or so, and then selects popular music, the selection of popular music may be processed by the control module 134 as an independent user preference, or as a sequential preference (play classics for one hour, then switch to popular), or as a disapproval of the control module's selection of classical music, or a combination of the three rationales. Conventional machine learning techniques, including Bayesian networks, fuzzy logic, and the like are used to modify or reaffirm the control module's selections, so as to improve the likelihood of the control modules and user task modules anticipating the user's desires, based upon an identification of the user within a given area. In a preferred embodiment, user specific actions affect the user task modules, whereas generally applicable experiences affect the control modules. One or more locator modules, control modules, and user task modules may be associated with the same location, or with the control of the same device. In this manner, the reliability of the system is enhanced, by reducing the dependencies on any one device. Techniques are commonly known in the art for resolving conflicts which may arise due to such a distributed control architecture. In a straightforward embodiment, each control module is allocated a position in a control hierarchy with respect to each appliance. Each highest ranking control module that is currently available controls each appliance. In like manner, the suggestions from each user task module and from among the user task modules are given decision weights relative to each appliance, to ease the decision process of each control module. The example kitchen 200 of FIG. 1 includes a control unit 210, a television appliance 220, speaker appliances 230, and a microwave appliance 240. The example control unit 210 is illustrated as containing a control module 214, a user task module 216, and a locator module 219, while the appliances are devoid of control devices. When the tracker 10 enters the kitchen 200, the locator module 219 notifies the appropriate devices in the home network 50, including the control module 214. The control module 214 accesses user task modules within the network 50, including the user task module 216, to determine if any actions are suggested, and accesses its internal rules to determine an action. For example, if the tracker 10 had previously been in the family room 100, and the television 120 in the family room 100 had been tuned to a particular channel, the internal rules of control module 214 would suggest turning on the television 220 in the kitchen, and tuning it to the same channel as the television 120. In like manner, in this example, the internal rules of control module 114 will suggest that television 120 be turned off, if no other users are detected in the family room 100. Note that the above sequences of suggestions are based on rules that are independent of the particular user that departs the family room 100 and enters the kitchen 200. These user- independent suggestions and rules are combined with any user-specific rules at the control module that is responsible for controlling the particular appliances. For example, a particular user may prefer to listen to music while in the kitchen 200, and would not desire to have the television 220 turned on, even though television 120 had been turned on by or for this user. The control module that is configured to control the television 220 and the control module that is configured to control the speaker appliances 230 apply these user-specific rules and preferences and will not turn the television 220 on, and will turn the speakers 230 on; if appropriate, based on the user specific rules and current contexts, the stereo 130 will also be tuned to provide the appropriate selection of music to the speakers 230. The aforementioned rules are structured so as to anticipate a user's desire, based on experience or default assumptions. For example, a default assumption would be that when a user enters an area at a particular time of day, the lights 140, 340 should be turned on, and when room is unoccupied, the lights 140, 340 and entertainment appliances 120, 130, 220, 230, 320, 330 are turned off. The default assumptions may effect sequential operations. For example, the control module 114 can be structured to wait for a predetermined time period before turning off the television 120 when the user departs the family room 100, to avoid an annoying shut-down, start-up sequence every time the user moves about the areas. In like manner, the control modules may determine the appropriate action based upon a user's recent activities. For example, in a preferred embodiment, if the user is determined to be traveling through rooms, without a significant pause within each room, the controller effects some actions, such as turning on lights, but not others, such as turning on stereo sets or televisions. In this example, the default assumption is that the user would prefer to have light for movement through adjoining rooms, but would not prefer to have other appliances turned on and off during each transit through a room. In a preferred embodiment, the user task modules and control modules are preprogrammed with default rules that are subsequently updated based on user experience, or direct user modification. The rules may also be coupled to other control devices as well. For example, as is common in the art, the microwave appliance 240 may include a programmable device that allows a user to preprogram the microwave to start at a particular time, for a particular duration, and so on. An alternative embodiment of the microwave appliance 240 could allow the user to preprogram the start based on the return of a person to the home, rather than on a preprogrammed time. The control module 214 in this example signals the microwave appliance 240 when the tracker that is associated with the specified person is next detected within the home. As would be evident to one of ordinary skill in the art, the start could also be triggered by other events as well, such as the entry of the person to a particular room within a particular time period. Illustrated in FIG. 1 is a configuration module 312 in a computer 310 in the home office 300. The configuration module 312 enables the system to be customized for each user directly. The configuration module 312 is also used to enable a user or installer to record the system configuration in terms of the location of modules and appliances throughout the house, and coordinates the allocation of controlled appliances to control modules. In accordance with this invention, the configuration module 312 is also used to enable an automatic or manually initiated download of the rules and preferences to the control modules and user task modules as required. The knowledge base and machine learning functions are preferably effected in the user task modules 116, 316, 416 that are distributed about the network 50, while the configuration module 312 effects actions required to coordinate these activities. In a preferred embodiment, for example, the configuration module allocates responsibilities to balance the computational load as devices are added to or removed from the network. In like manner, the configuration module dynamically allocates responsibilities for appliances among the control modules, and responsibilities for users among the user task modules. The configuration module 312 also responds to queries by the individual modules regarding configuration status and information. In a preferred embodiment, the rules regarding the operation of the external control modules 114, 134, 214, and 414 are configured so as not to be dependent upon the continuos operation of the computer 310 or the configuration module 312. In this manner, the reliability of the system in accordance with this invention is not dependent upon the reliability and availability of a central controller, such as computer 310. The overall system reliability may also be enhanced by utilizing the principles of copending US application "Slave DSP Reboots Stalled Master CPU", serial number 08/880,387, filed 6/23/97 for Paul Foster et al., and herein incorporated by reference. This document relates to a digital home entertainment system comprising one or more slave processors, for example, digital signal processors (DSPs), for processing specific tasks, and a master processor, for example, a central processing unit (CPU), for control of the system. The slave processor is capable of rebooting the master processor if the master processor has stalled. This slave- controlled rebooting avoids manual cold rebooting of the system and is particularly advantageous in open-architecture multimedia systems with asynchronously cooperating components. The user task modules 116, 316, 416 may each be designed to process particular information. In the example configuration of FIG. 1, the user task module 116 in the web-tv appliance 110 may be designed to specifically facilitate the optimization of each user's access to the web. For example, copending U.S. patent application "Customized Upgrading of Internet-Enabled Devices Based on User-Profile", attorney docket PHA 23,500, serial number 09/160,490, filed 9/25/98 for Adrian Turner et al, and incorporated by reference herein, presents a method of retrieving information from the Internet based upon a user profile. In an example embodiment, the locator module 119 notifies the other modules on the network of the presence of the user associated with tracker 10. In response to this notification, the control module 114 accesses the Internet and retrieves the information based on this user profile in accordance with the above mentioned copending application. The user task module 416 in the environmental control appliance 410, on the other hand, may be designed to facilitate the optimization of the home environment in response to user preferences and experiences. The user task module 416 may know nothing about web services, and the user task module 116 may know nothing about environmental services. That is, each user task module's function can be specialized to a particular knowledge domain. The user task module 316, on the other hand, being located in a computer 310, may be designed to handle all available services. The resolution of conflicting suggestions from multiple task modules can be resolved using the aforementioned priority scheme, wherein each task module has a ranking of control, and the suggestions from the currently highest ranking module is given priority. Alternatively, in a preferred embodiment, the user task modules communicate among themselves and consistent rules are formulated. In the example embodiment of FIG. 1, the user task module 316 in the computer 310 periodically gathers information from each of the other user task modules and attempts to resolve conflicts using conventional decision theory techniques, such as voting, prioritize voting, and the like. The level of complexity of each module can vary, and less capable devices can rely upon other devices to varying degrees. For example, the aforementioned web-optimized user task module 116 may include an ability to store an activity history corresponding to the use of the television 120 and stereo 130, and provide suggestions to the control modules 114, 134 based on these histories and a primitive level of machine learning. Periodically, the user task module 316 obtains this activity history from the user task module 116, develops more sophisticated rules and suggestions based upon these histories, and communicates these new rules and suggestions to other modules throughout the system as appropriate. Differing levels of control may be included in the home automation system in accordance with this invention. For example, illustrated in FIG. 1 is a tracker 11 that is associated with a different user than the one associated with tracker 10. When the tracker 11 enters the home office 300, the locator module 390 detects the presence of tracker 11, and notifies the network 50. In response to this notification, the computer 310 and the environment control 410 effect different control. The device command module 414 in the environment control 410 may merely send a signal to an environment network 405, such as a furnace or air conditioning system, to adjust the level of the temperature in the office 300, based on the data in the user task module 416 corresponding to the user associated with tracker 11. The user task module 416 in this example may merely contain the last temperature that this user selected, with no knowledge based or learning machine capabilities. The control module 314 in the computer 310, on the other hand, may effect a number of complex actions, such as establishing contact to an external network 305 to retrieve the user's e-mail, initiating one or more of the applications, such as a word processor, that the user typically uses, reciting the received e-mail messages via the speakers 330, accepting voice commands from the user, and so on. These actions will have been determined based on the user's prior history, the user's explicit commands, or a set of default options, as discussed above. The trackers 10, 11 and locator modules 119, 190, 290, 390 are designed to operate together so as to determine the relative or absolute location of each tracker 10 in the vicinity of each module. Any number of available technologies may be employed to facilitate this determination. In a preferred embodiment, the tracker emits a signal that is only receivable by locator modules within its vicinity, using for example infrared signaling. In an alternative embodiment, the locator module emits a radio frequency (RF) trigger signal, and the trackers that are within the vicinity of the locator module reflect a modulated form of the RF trigger signal back to the locator modules. These and other methods of remotely determining the presence of an object within an area or region are common in the art. The tracker may be of varying complexity. In a single-user application, the tracker need only be a device that is detectable by a locator module. In a multiple-user application, each tracker includes a means of communicating a unique identifier. In a preferred implementation, the tracker also includes user selectable options, including the options to turn the tracker off, or to enter a manual mode, wherein the locator modules continue to determine the location of the tracker, but some or all of the automated actions by the control modules are inhibited. The tracker may also be configured with a means for the user to communicate commands directly. Copending application "Remote Control Device with Location Dependent Interface", attorney docket PHA 23,522, serial number , filed 12/11/98 for Joost Kemink, and incorporated herein by reference, presents a method and apparatus for providing the user of the apparatus differing control capabilities in dependence upon where the user is located. The tracker of this invention may include some or all of the capabilities described in this copending application, such that, for example, when the user selects a manual mode, the tracker provides user options based upon the appliances within the user's immediate area. FIG. 2 illustrates an example data flow diagram of a home control system in accordance with this invention. The control module 540 receives input from a variety of sources in order to determine the appropriate commands 541 to communicate to appliances 550, based upon a determination 591 of the location of one or more trackers 510. In the HAVi environment, for example, a controller (control module 540) is a device that acts as a host for a controlled device (appliance 550). The controller hosts the abstract representation for the controlled device. The control interface is exposed via the API of the abstract representation. This API is the access point for applications to control the device. The controller receives commands and information via the API, and determines an appropriate device command. The controlled device assumes a controlled state in response to receipt of the determined command. In a preferred embodiment, each locator 590 determines the identity and mode of each tracker 510 within its vicinity. The mode of the tracker 510 includes, for example, a manual control mode, a standby mode, and an automated mode. In the manual control mode, no automated actions are taken by the control module 540. In the standby mode, only primitive actions, such as the turning on of lights when the tracker is detected in each area, are effected by the control module 540. In the automated mode, all determinable actions are effected by the control module 540. The control module 540 determines the appropriate actions to be taken based upon suggestions 561 from one or more user task modules 560, as well as the defined rules 530, the context 570, and the configuration 520 of the network 50, as discussed above. In a preferred embodiment, the control module 540 communicates a query 546 to the user task module 560, requesting one or more suggestions based upon the location of a particular user. In response to this query, the user task module 560 communicates zero or more suggested actions 561 to the control module 540. The control module 540 determines the desired actions, if any, and communicates the appropriate commands 541 to appliances 550 to effect these actions. In a preferred embodiment, each appliance 550 communicates its status 551 to the network 50, and in particular to the control module 540, as illustrated by the dashed line in FIG. 2. The control module 540 uses this communicated status to verify that the desired actions have been effected, and to determine any subsequent adjustments to the appliances, such as those performed directly by the user. If the control module 540 includes a knowledge base or learning techniques, these subsequent adjustments will be used to modify the decision criteria used to determine subsequent automated actions, as discussed above. The control module actions and any user controlled actions or adjustments, and the times that each occur, are also communicated to the user task module 560 as history updates 548. The history of activities contained in each user task module 560 may be used by control modules and user task modules throughout the network to refine their suggestion and decision processes based on each user's actions at varying times and locations. For completeness, FIG. 3 illustrates an example flow chart for the control module 540 of FIG. 2 in a home control system in accordance with this invention. At block 610, the location and mode data associated with each user is updated. A variety of techniques may be employed to effect this update. For example, the control module 540 may contain a data base that is continually updated as each locator module 590 reports an arrival or departure of a user/tracker 510. Alternatively, the control module 540 may query each locator module 590 in the network 50 as required. If the mode of the tracker 510 that is associated with the user has changed, at 615, the status of the user is updated, at 620. In general, the tracker 510 may include a multitude of modes, including the aforementioned manual, standby, and automated modes, as well as other user selectable modes. For example, the tracker 510 may be configured to allow the user to specify a particular mood, such as active, quiet, romantic, and so on. Not all control modules will contain the ability to process the variety of tracker modes; the block 620 effects a transformation from the possible tracker modes to the states that are supported by the particular control module 540. If the identified user is either newly arrived 625 or newly departed 635 to or from the reported location, the control module 540 queries the user task modules 560, at 630 and 640, for suggestions as to the preferred actions to be taken in response to this arrival or departure. Additionally, if the context 570 has changed, at 645, the user task modules 560 are again queried for suggested actions, at 650. In a preferred embodiment, all rules and user preferences are processed to identify time dependencies, and the context 570 is deemed to change at the time of each of the identified dependencies. The context 570 is also deemed to change whenever a external sensor, such as a light or motion sensor, reports a change. After receiving the user specific suggestions from the user task modules 560, the control module 540 determines the appropriate actions to be taken, at 660, based upon these suggestions, as well as the context and rules associated with this user, as well as the status and location of this user and other users, as discussed above. If, at 665, the decided actions are applicable to appliances 550 within the immediate control of this control module 540, the actions are transformed into appliance commands to effect the actions, at 670, and communicated to the controlled appliances, at 672. If, at 665, the control module 540 is in a secondary control role, such as when used as a redundant controller in a distributed control system, the control module 540 communicates its decided action to each other control module that is in direct control of each of the affected appliances. As discussed above, techniques for resolving disputes among distributed controllers are common in the art, as are protocols for assigning direct control to secondary controllers when it is determined that a primary controller is inoperative. After communicating the decided actions or corresponding appliance commands, the history data is updated, at 690, as discussed above. This process is continually repeated, as indicated by the loop from block 690 back to block 610 in FIG. 3. The foregoing merely illustrates the principles of the invention. It will thus be appreciated that those skilled in the art will be able to devise various arrangements which, although not explicitly described or shown herein, embody the principles of the invention and are thus within its spirit and scope. For example, copending U.S. patent application "Upgrading of Synergetic Aspects of Home Networks", attorney docket PHA23,527, serial number 09/189,535, filed 11/10/98 for Yevgeny Shteyn, and incorporated by reference herein, presents a method of enhancing the synergy of the appliances that are located on the network, based on the inventory of appliances on the network. Using this copending application, the configuration module 312 may redefine the functions available to the control modules as other appliances or capabilities are added to the network. In like manner, the rules for controlling appliances need not be restricted to the arrival or departure of tracker's in each area. For example, one of the appliances in the home network 50 may be a motion detector, and another appliance an alarm device. A control module in the home network 50 can be configured to activate the alarm device if the motion detector reports motion in a particular area, and a locator module does not report the presence of a tracker in that same area. In like manner, the operation of a control system in accordance with this invention may be coupled to or integrated with other automated systems. For example, copending U.S. patent application "Distributed Software Controlled Theft Detection", attorney docket PHA 23,503, serial number 09/176,171, filed 10/21/98 for Doreen Cheng, and incorporated herein by reference, discloses a method of protecting property within a home or office via a distributed network. This same network may be utilized to provide location dependent security and control capabilities in accordance with the principles presented herein. The structure and functional partitions of the home control system of FIGs. 1 and 2 are presented herein for illustrative purposes only. As would be evident to one of ordinary skill in the art, for example, the tracker 10 may be configured to communicate its location directly to the network 50, using for example a GPS or other location determining technology. In like manner, the functions of the control module and user task module may be integrated into a single module. The principles of this invention may be embodied in hardware, software, or a combination of both. For example, the user task modules may be software applications and memory devices, while the control module may be implemented as special purpose hardware components. These alternative configurations and other optimization techniques would be evident to one of ordinary skill in the art in view of the principles presented in this specification.

Claims: CLAIMS: 1. A method for enabling control of an appliance (550), comprising the steps of: enabling a determination of a location of a user (591), enabling a determination of an action in dependence upon the location of the user (591), enabling a determination of an appliance command (541) associated with the action, and, enabling the appliance (550) to assume a controlled state in response to the determined appliance command (541). 2. The method of claim 1, wherein the appliance command (541) is communicated to the appliance (550) via a network. 3. The method of claim 1 , further comprising the step of enabling a selection of the appliance (550) from a plurality of appliances based on the location of the user (591). 4. The method of claim 1, wherein the determination of the action is based upon at least one of: a context (570), a time, a rule, a mode (591), and a history of activities of the user (548). 5. The method of claim 1, further comprising the step of enabling a determination of a suggestion of action (561) based on the location of the user (591), and wherein the determination of the action is further based on the suggestion of action (561). 6. The method of claim 1, further comprising the step of enabling a creation of a set of rules (530) associated with the user, the location of the user (591), and the appliance (550), and wherein the determination of the action is further based on the set of rules (530). 7. A control module comprising: means for determining a location of a user (591), means for determining an action based upon the location of the user (591), means for determining an appliance (550) and an appliance command (541) based on the action, and means for communicating the appliance command (541) to the appliance (550) to effect the action. 8. The control module of claim 7, further including means for receiving a task suggestion (561) from a user task module (560) based on the location of the user (591), and wherein the means for determining the action is operably coupled to the means for receiving the task suggestion (561) such that the action is further based on the task suggestion (561). 9. The control module of claim 7, further including means for determining rules (530) based on the location of the user (591), and wherein the means for determining the action is operably coupled to the means for determining rules (530) such that the action is further based on the rules (530). 10. The control module of claim 7, wherein the means for determining an action is further dependent upon a knowledge domain associated with the appliance (550). 11. An appliance (110, 130) for use in a control system, the appliance (110, 130) comprising: an appliance component for effecting a primary appliance function; and a control component (114, 134) that determines a control command (541) based upon a location of a user (591) and communicates the control command (541) to a second appliance (120, 140). 12. The appliance (110, 130) of claim 11, wherein the control command (541) is determined based further upon at least one of: a context (570), a time, a rule (530), and a history of user activities (548).

Inventors: CHENG DOREEN Y, CHENG, DOREEN, Y.
Applicants: KONINKL PHILIPS ELECTRONICS NV, KONINKLIJKE PHILIPS ELECTRONICS N.V.
Application year: 1999
Main classification: H04L12
IPC codes: G06F13, H04L12, H04L29, H04Q9