Abstract:
A remote control system includes a remote control device configured to control a plurality of consumer electronic devices. The remote control system further includes a programming system configured to: i) receive identifying information, which identifies each of the consumer electronic devices, ii) generate at least one macro, which is configured for collectively controlling the consumer electronic devices to perform a media function; and iii) issue a query to a user to determine whether the macro is to be used by the remote control device. If a positive response is received by the programming system in response to the query, then configuring the remote control device for using the macro. If a negative response is received by the programming system in response to the query, then not configuring the remote control device for using the macro.

Description:
CROSS-REFERENCES TO RELATED APPLICATIONS 
       [0001]    This application is a continuation of U.S. patent application Ser. No. 11/841,753, filed Aug. 20, 2007, titled “State-Based Remote Control System”, of Glen McLean Harris et al., which is a continuation of U.S. patent application Ser. No. 11/411,398, filed Apr. 25, 2006, titled “State-Based Remote Control System” of Glen McLean Harris et al., which is a continuation of U.S. patent application Ser. No. 10/870,339, filed Jun. 16, 2004, titled “State-Based Remote Control System,” of Glen McLean Harris et al., which is a continuation of U.S. patent application Ser. No. 09/804,718, (U.S. Pat. No. 6,784,805), filed Mar. 12, 2001, titled “State-Based Remote Control System,” of Glen McLean Harris et al., which claims the benefit of U.S. Provisional Patent Application No. 60/253,727, filed Nov. 29, 2000, titled “State-Based Remote Control System,” of Glen McLean Harris et al. and claims the benefit of U.S. Provisional Patent Application No. 60/189,487, filed Mar. 15, 2000, titled “System, Method and Apparatus for an Internet Enabled User Interaction Device”, of Glen McLean Harris et al. each of which is incorporated by reference herein in its entirety for all purposes. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    1. Field of the Invention 
         [0003]    The present invention relates generally to remote control devices and more specifically it relates to a state-based remote control system for providing efficient and simple operation of a plurality of electronic devices as a coordinated system based upon an overall task. 
         [0004]    2. Description of the Prior Art 
         [0005]    Remote control devices have been in use for years. Remote control devices are utilized to operate various external electronic devices including but not limited to televisions, stereos, receivers, VCRs o , DVD players, CD players, amplifiers, equalizers, tape players, cable units, lighting, window shades and other electronic devices. A conventional remote control is typically comprised of a housing structure, a keypad within the housing structure for entering commands by the user, electronic circuitry within the housing structure connected to the keypad, and a transmitter electrically connected to the electronic circuitry for transmitting a control signal to an electronic device to be operated. 
         [0006]    The user depresses one or more buttons upon the keypad when a desired operation of a specific electronic device is desired. For example, if the user desires to turn the power off to a VCR, the user will depress the power button upon the remote control which transmits a “power off” control signal that is detected by the VCR resulting in the VCR turning off. 
         [0007]    Because of the multiple electronic devices currently available within many homes and businesses today, a relatively new type of remote control is utilized to allow for the control of a plurality of electronic devices commonly referred to as a “universal remote control.” Most universal remote controls have “selector buttons” that are associated with the specific electronic device to be controlled by the remote control (i.e., television, VCR, DVD player, etc.). 
         [0008]    Example: A few universal remote controls allow for “macros” to be programmed into the remote control so that when a preprogrammed button is depressed a string of commands is executed as programmed. For example, if the user desires to operate their television along with the stereo receiving input from the television, the user would program a macro for turning on the television, turning on the stereo and then switching the input to the stereo for receiving audio input from the television. The main problem with conventional universal remote controls is that they are unable to detect or monitor the state of a particular electronic device. Another problem with conventional universal remote controls is that when a preprogrammed macro is executed, an undesirable effect can occur wherein electronic devices that are desired to be turned on are actually turned off. For example, if the television is already on but the stereo is tuned to a .local radio station and the user selects the above macro the power to the television would actually be turned off instead of maintained on. 
         [0009]    Recently, universal remote controls have been developed that communicate via radio frequency (RF) with external sensing devices that are connected to the electronic devices for detecting the current state of the electronic device. Other remote controls are able to receive and display information from the electronic device they control such as displaying the name of a radio station on a display of the remote. These devices are relatively expensive and again difficult to utilize for the average consumer. 
         [0010]    The main problem with conventional remote control devices is that they are typically unable to know the particular “state” of an electronic device they are to control, particularly universal remote controls. A further problem with conventional remote controls that do allow for advanced configuration thereof to compensate for the various states of the electronic device is that they are often times difficult for the average consumer to utilize. Another problem with conventional remote control devices is that they force consumers to heir electronic devices “individually” (i.e., turn television on, turn stereo on, switch audio input on stereo to television) rather than in broad “tasks” (e.g., watch television). 
         [0011]    While these devices may be suitable for the particular purpose to which they address, they are not as suitable for providing efficient and simple operation of a plurality of electronic devices as a coordinated system based upon an overall task. Conventional remote controls are typically programmed to operate only one electronic device. Conventional universal remote controls are typically programmed to operate electronic devices “individually” or are difficult to configure to automated control of a plurality of electronic devices. 
         [0012]    In these respects, the state-based remote control system according to the present invention substantially departs from the conventional concepts and designs of the prior art, and in so doing provides an apparatus primarily developed for the purpose of providing efficient and simple operation of a plurality of electronic devices as a coordinated system based upon an overall task. 
       BRIEF SUMMARY OF THE INVENTION 
       [0013]    In view of the foregoing disadvantages inherent in the known types of remote controls now present in the prior art, the present invention provides a new state-based remote control system construction wherein the same can be utilized for providing efficient and simple operation of a plurality of electronic devices as a coordinated system based upon an overall task. 
         [0014]    The general purpose of the present invention, which will be described subsequently in greater detail, is to provide a new state-based remote control system that has many of the advantages of the remote controls mentioned heretofore and many novel features that result in a new state-based remote control system which is not anticipated, rendered obvious, suggested, or even implied by any of the prior art remote controls, either alone or in any combination thereof. 
         [0015]    To attain this, the present invention generally comprises a housing, a keypad in communication with an electronic system contained within the housing, and a communication device in communication with the electronic system for communicating with external electronic devices. The electronic system constantly monitors the buttons selected by a user to determine the state of all external electronic devices that are to be controlled. When the user selects a task (e.g., watch television), the electronic system automatically determines the actions required to achieve the desired task based upon the current state of the external electronic devices. After the task has been fulfilled, the electronic system updates the data to reflect the modified state of the external electronic devices. 
         [0016]    There has thus been outlined, rather broadly, the more important features of the invention in order that the detailed description thereof may be better understood, and in order that the present contribution to the art may be better appreciated. There are additional features of the invention that will be described hereinafter and that will form the subject matter of the claims appended hereto. 
         [0017]    In this respect, before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not limited in its application to the details of construction and to the arrangements of the components set forth in the following description or illustrated in the drawings. The invention is capable of other embodiments and of being practiced and carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein are for the purpose of the description and should not be regarded as limiting. 
         [0018]    A primary object of the present invention is to provide a state-based remote control system that will overcome the shortcomings of the prior art devices. 
         [0019]    A second object is to provide a state-based remote control system for providing efficient and simple operation of a plurality of electronic devices as a coordinated system based upon an overall task. 
         [0020]    Another object is to provide a state-based remote control system that provides for intuitive operation of a plurality of electronic devices. 
         [0021]    An additional object is to provide a state-based remote control system that allows for the simple operation of a plurality of electronic devices based upon an 25 overall “task” instead of specific controls for specific electronic devices. 
         [0022]    A further object is to provide a state-based remote control system that is simple and easy to utilize for the average consumer. 
         [0023]    Another object is to provide a state-based remote control system that does not require significant programming prior to usage. 
         [0024]    An additional object is to provide a state-based remote control system that is affordable. 
         [0025]    Other objects and advantages of the present invention will become obvious to the reader and it is intended that these objects and advantages are within the scope of the present invention. 
         [0026]    To the accomplishment of the above and related objects, this invention may be embodied in the form illustrated in the accompanying drawings, attention being called to the fact, however, that the drawings are illustrative only, and that changes may be made in the specific construction illustrated and described within the scope of the appended claims. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0027]    Various other objects, features and attendant advantages of the present invention will become fully appreciated as the same becomes better understood when considered in conjunction with the accompanying drawings, in which like reference characters designate the same or similar parts throughout the several views, and wherein: 
           [0028]      FIG. 1  is an upper perspective view of the present invention. 
           [0029]      FIG. 2  is a side view of the present invention. 
           [0030]      FIG. 3  is a side view of the present invention illustrating electronic circuitry within. 
           [0031]      FIG. 4  is a block diagram illustrating the communications between the present invention and a plurality of external electronic devices. 
           [0032]      FIG. 5  is a block diagram illustrating the electronic system of the present invention electrically connected to the power source and in communication with the external electronic devices. 
           [0033]      FIG. 6  is a block diagram illustrating the electronic system along with a plurality of accessory devices connected to thereof. 
           [0034]      FIG. 7  is a flowchart illustrating the initial programming of the present invention prior to usage. 
           [0035]      FIG. 8  is a flowchart illustrating the modification of the state of external electronic devices not in the desired state as desired within a task to be performed. 
           [0036]      FIG. 9  is a flowchart illustrating an action performed upon one or more external devices and modifying the memory within the electronic system accordingly. 
           [0037]      FIG. 10  is a flowchart illustrating the modification of the memory within the electronic system to reflect the changed state of the external electronic devices after a task or an action has been completed. 
           [0038]      FIGS. 11   a - 11   b  is a flowchart providing an example task for watching television being executed 
           [0039]      FIG. 12  is a simplified schematic of a remote control system according to one embodiment of the present invention; and 
           [0040]      FIG. 13  is a simplified schematic of a remote control system according to another embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0041]    Turning now descriptively to the drawings, in which similar reference characters denote similar elements throughout the several views,  FIGS. 1 through 11  illustrate a state-based remote control system  10 , which comprises a housing  20 , a keypad  114  in communication with an electronic system  100  contained within the housing  20 , and a communication device  108  in communication with the electronic system  100  for communicating with external electronic devices  12 . The electronic system  100  constantly monitors the buttons of the keypad  114  and other switches selected by a user to determine the state of all external electronic devices  12  that are to be controlled. When the user selects a task (e.g., watch television), the electronic system  100  automatically determines the actions required to achieve the desired task based upon the current state of the external electronic devices  12 . After the task has been fulfilled, the electronic system  100  updates the data to reflect the modified state of the external electronic devices  12 . 
       A. Housing Structure 
       [0042]    The present invention generally is comprised of a housing  20  having a structure and shape similar to conventional remote control devices. The housing  20  may be constructed of various types of materials and shapes as can be appreciated by one skilled in the art. The housing is preferably structured to be ergonomic for a majority of users. 
       B. Electronic System 
       [0043]    The present invention is utilized to control and operate various external electronic devices including but not limited to televisions, stereos, receivers, VCRs, DVD players, CD players, amplifiers, equalizers, tape players, cable units, satellite dish receivers, lighting, window shades and other electronic devices. Almost any number of external electronic devices may be controlled by the present invention as will be discussed in further detail. 
         [0044]      FIG. 6  is a block diagram of an exemplary electronic system  100  for practicing the various aspects of the present invention. The electronic system  100  is preferably enclosed within the housing. A portable power source  140  is electrically connected to the electronic system  100  for providing electrical power to the electronic system  100 . The power source  140  may be comprised of any power source such as a battery structure (disposable or rechargeable), solar cells, or direct power. 
         [0045]    The electronic system  100  preferably includes a display screen  104 , a network interface  112 , a keypad  114 , a microprocessor  116 , a memory bus  118 , random access memory (RAM)  120 , a speaker  102 , read only memory (ROM)  122 , a peripheral bus  124 , a keypad controller  126 , and a communications device  108 . As can be appreciated, the electronic system  100  of the present invention may be comprised of any combination of well-known computer devices, personal digital assistants (PDAs), laptop computers, remote control devices and other similar electronic structures. 
         [0046]    The microprocessor  116  is a general-purpose digital processor that controls the operation of the electronic system  100 . The microprocessor  116  can be a single-chip processor or implemented with multiple components. Using instructions retrieved from memory, the microprocessor  116  controls the reception and manipulations of input data and the output and display of data on output devices. 
         [0047]    The memory bus  118  is utilized by the microprocessor  116  to access RAM  120  and ROM  122 . RAM  120  is used by microprocessor  116  as a general storage area and as scratch-pad memory, and can also be used to store input data and processed data. ROM  122  can be used to store instructions or program code followed by microprocessor  116  as well as other data. 
         [0048]    Peripheral bus  124  is used to access the input, output and storage devices used by the electronic system  100 . In the described embodiment(s), these devices include a display screen  104 , an accessory device  106 , a speaker  102 , a communications device  108 , and a network interface  112 . A keypad controller  126  is used to receive input from the keypad  114  and send decoded symbols for each pressed key to microprocessor  116  over bus  128 . 
         [0049]    The display screen  104  is an output device that displays images of data provided by the microprocessor  116  via the peripheral bus  124  or provided by other components in the electronic system  100 . Other output devices such as a printer, plotter, typesetter, etc. can be utilized as an accessory device  106 . 
         [0050]    The microprocessor  116  together with an operating system operate to execute computer code and produce and use data. The computer code and data may reside on RAM  120 , ROM  122 , or other storage mediums. The computer code and data could also reside on a removable program medium and loaded or installed onto the electronic system  100  when needed. Removable program mediums include, for example, PC-CARD, flash memory, and floppy disk. 
         [0051]    The network interface  112  is utilized to send and receive data over a network connected to other electronic systems. The network interface may be comprised of a Universal Serial Bus (USB), an external bus standard that supports data transfer rates of 12 Mbps (12 million bits per second). A single USB port can be used to connect up to 127 peripheral devices, such as mice, modems, and keyboards. An interface card or similar device and appropriate software implemented by microprocessor  116  can be utilized to connect the electronic system  100  to an existing network and transfer data according to standard protocols including data over a global computer network such as the Internet. 
         [0052]    The keypad  114  is used by a user to input commands and other instructions to the electronic system  100 . Other types of user input devices can also be used in conjunction with the present invention. For example, pointing devices such as a computer mouse, a jog switch  22 , a track ball, a stylus, or a tablet to manipulate a pointer on a screen of the electronic system  100 . 
         [0053]    The present invention can also be embodied as computer readable code on a computer readable medium. The computer readable medium is any data storage device that can store data which can be thereafter be read by a electronic system. Examples of the computer readable medium include read-only memory, random-access memory, magnetic data storage devices such as diskettes, and optical data storage devices such as CD-ROMs. The computer readable medium can also be distributed over a network coupled electronic systems so that the computer readable code is stored and executed in a distributed fashion. 
         [0054]    The communications device  108  may be comprised of any well-known communication system that allows communications with external electronic devices. The communications device  108  may provide for various types of communication such as but not limited to via infrared (IR), wireless (e.g., BLUETOOTH), unidirectional, bidirectional, radio frequency (RF), visible light, ultrasonic and various other means for communicating with external electronic devices. 
         [0055]    The environmental unit  110  senses environmental information such as lighting, motion, orientation, temperature, audio and other environmental information. The environmental unit  110  communicates the detected environmental information to the microprocessor  116  for consideration in controlling the external electronic devices. The environmental unit  110  includes the appropriate sensors such as light sensors, temperature sensors, sound sensors and other desirable sensors to determine the environment conditions external of the housing. 
         [0056]    Input into the electronic system is accomplished mainly through the usage of the keypad  114 . The keypad  114  includes a plurality of buttons that allow the user to execute one or more commands. The keypad  114  allows for the control of basic functions such as volume, channel manipulation, mute, and last channel. However, the keypad  114  may also include several buttons that represent a specific task such as watch television, listen to radio and various other tasks. Various other input devices may be utilized to input data into the electronic system such as a jog switch  22  (i.e., dial), motion and orientation detectors, touch sensitive screens and voice recognition. The display  104  provides information to the user such as possible tasks to complete or the current state of the external electronic devices. 
         [0000]    C. Initializing/Synchronizing of Electronic System with External Devices 
         [0057]    Prior to utilizing the present invention, the user must program the electronic system  100  to not only recognize all of the external electronic devices  12  to be controlled but also as to each external electronic device  12  respective current “states” (i.e., on, off, current input, current output, etc.) as is shown in  FIG. 7  of the drawings. 
         [0058]    The initial programming of the electronic system  100  may be accomplished through various well-known means such as entering a code for each specific external electronic device. “Sampling” of a signal from a remote control utilized to control a specific electronic device may also be utilized to assist in the programming of the electronic system  100 . Various other methods may be utilized to program the electronic system  100  to recognize and control the external electronic devices  12  which are well known in the art. 
         [0059]    After all of the external electronic devices  12  have been properly programmed into the electronic system  100 , the user then must program the “current state” of each external electronic device into the electronic system  100 . This is accomplished typically by the user answering a series of questions shown on the display regarding each display. For example, the display may ask “Is the television turned on?” which the user would respond to. It can be appreciated that there can also be a default state for all of the external devices as being “off.” All of the programmed “Current State Data” is stored within memory of the electronic system  100 . 
       D. Current State Data 
       [0060]    “Current State Data” is data information relating to the current state of each of the external electronic devices  12  stored within the electronic system  100 . The “state” of an external electronic device  12  is comprised of various variables such as but not limited to power on, power off, volume level, mute on, mute off, audio input, audio output, video input, video output, lights on, lights off, shades open, shades closed, and various other states common to external electronic devices  12 . The Current State Data is updated as actions and/or tasks are performed to provide an accurate reflection of the actual current state of the external electronic devices  12 . The Current State Data is utilized by the electronic. system  100  to determine what external electronic devices  12  require modification when a “task” is selected by the user to prevent undesirable events from occurring. 
       E. Actions 
       [0061]    An “action” is a specific event that occurs that typically only affects one of the external devices. An example of an action is when the user selects the power button on the keypad  114  to turn off the television which causes the television to switch from on to off or vice-versa. 
         [0062]    The Current State Data is immediately modified to reflect the changed state of the television or other external electronic device after an action occurs as shown in  FIGS. 9 and 10  of the drawings. The Current State Data is constantly updated to maintain an accurate reflection of the actual current state of the external electronic devices  12 . 
       F. Tasks 
       [0063]    A “task” may be comprised of one or more “actions” depending upon (1) the desired state of all external devices as prescribed by the task, and (2) the current state of all external devices. Examples of tasks are “watch television,” “listen to radio,” “watch video,” “listen to CD&#39;s,” “watch DVD”, and so forth. There are many more tasks that may accomplished with the present invention that are not discussed but are deemed readily apparent to one skilled in the art. 
         [0064]    Each task has a “desired state” for each of the external electronic devices  12 . When a task is selected, either through the keypad or the display, the electronic system  100  immediately determines the Current State Data and compares this data to the “Desired State Data” for all of the external electronic devices  12 . After determining which external electronic devices  12  are in the desired state and which are not in the desired state, the electronic system  100  transmits a communication signal to the external electronic devices  12  that are not in the desired state to switch to the desired state based upon the task to be performed. 
         [0065]    Another function of the present invention is to allow for the electronic system  100  to determine what menu options (i.e., “tasks”) that are available upon the display  104  based upon the current state of the external electronic devices  12 . For example, if the television is currently on, the menu within the display may display the “Turn Television Off” task instead of the “Turn Television On” task which is not required. 
       G. Watch Television Task Example 
       [0066]    Assuming for the sake of example that a user using the present invention has (1) interior lighting, (2) electronically controlled shades, (3) a stereo, (4) a television, (5) a CD player, and (6) a VCR which are programmed and synchronized within the electronic system as stated above.  FIG. 11  illustrates the “WATCH TELEVISION” task. Below is a sample listing of the “Current State Data” prior to the selection of the WATCH TELEVISION task as shown in  FIG. 11  of the drawings. 
         [0000]    
       
         
               
             
               
               
               
             
           
               
                   
               
               
                 Current State Data 
               
             
          
           
               
                   
                 External Device 
                 Initial State Prior to Execution Task 
               
               
                   
                   
               
               
                   
                 1. Room Lighting 
                 Lights turned on and shades open during 
               
               
                   
                   
                 evening hours. 
               
               
                   
                 2. Stereo 
                 Turned on with input audio from CD player. 
               
               
                   
                 3. Television 
                 Turned off with volume very high. 
               
               
                   
                 4. CD Player 
                 On and playing CD. 
               
               
                   
                 5. VCR 
                 Off. 
               
               
                   
                   
               
             
          
         
       
     
         [0067]    After selecting the desired WATCH TELEVISION task, the electronic system  100  immediately reads the Current State Data and compares the same to the “Desired State Data.” Below is -a listing of the Desired State Data for the WATCH TELEVISION task. 
         [0000]    
       
         
               
             
               
               
             
           
               
                   
               
               
                 Desired State Data 
               
             
          
           
               
                 External Device 
                 Initial State Prior to Execution Task 
               
               
                   
               
               
                 1. Room Lighting 
                 Light threshold at a minimum. 
               
               
                 2. Stereo 
                 Turned on with input audio from television. 
               
               
                 3. Television 
                 Turned on with volume at a low-medium setting. 
               
               
                 4. CD Player 
                 Off. 
               
               
                 5. VCR 
                 Off. 
               
               
                   
               
             
          
         
       
     
         [0068]    After comparing the Current State Data to the Desired State Data, the electronic system  100  determines that the room lighting needs to be reduced by turning off lights  15  and closing shades along with switching the audio input to the television. The electronic system  100  further determines that the television needs to be turned on and the CD player turned off. Below is a listing of the individual actions that the electronic system  100  takes to perform the WATCH TELEVISION task. 
         [0000]    
       
         
               
             
               
               
             
           
               
                   
               
               
                 Actions Performed to Reach Desired State 
               
             
          
           
               
                 External Device 
                 Initial State Prior to Execution Task 
               
               
                   
               
               
                 1. Room Lighting 
                 Turn lighting off and close shades. 
               
               
                 2. Stereo 
                 Switch input audio to television. 
               
               
                 3. Television 
                 Turn on and reduce volume to low-medium setting. 
               
               
                 4. CD Player 
                 Turn off. 
               
               
                 5. VCR 
                 No action taken. 
               
               
                   
               
             
          
         
       
     
         [0069]    After the specific actions are executed to accomplish the overall task, the memory within the electronic system  100  is automatically updated to reflect the various changes to the state of each individual external electronic device  12  for reference later. Below is a listing of the Current State Data after the WATCH TELEVISION task has been performed. 
         [0000]    
       
         
               
             
               
               
             
           
               
                   
               
               
                 Current State Data 
               
               
                 (After Execution of Task) 
               
             
          
           
               
                 External Device 
                 Initial State Prior to Execution Task 
               
               
                   
               
               
                 1. Room Lighting 
                 Light threshold at a minimum. 
               
               
                 2. Stereo 
                 Turned on with input audio from television. 
               
               
                 3. Television 
                 Turned on with volume at a low-medium setting. 
               
               
                 4. CD Player 
                 Off. 
               
               
                 5. VCR 
                 Off. 
               
               
                   
               
             
          
         
       
     
         [0070]    The above process is repeated for the life of the state-based remote control system  10 . If additional external electronic devices are added to the overall entertainment system of the user, the user simply programs the added device  12  into the electronic system  100  and synchronizes the electronic system  100  accordingly. 
         [0071]    As to a further discussion of the manner of usage and operation of the present invention, the same should be apparent from the above description. Accordingly, no further discussion relating to the manner of usage and operation will be provided. 
         [0072]    With respect to the above description then, it is to be realized that the optimum dimensional relationships for the parts of the invention, to include variations in size, materials, shape, form, function and manner of operation, assembly and use, are deemed to be within the expertise of those skilled in the art, and all equivalent structural variations and relationships to those illustrated in the drawings and described in the specification are intended to be encompassed by the present invention. 
       H. Configuration 
       [0073]    The user wishes to configure the remote control to operate the user&#39;s home entertainment system. Based on the devices previously identified by the user, the Programming System provides a default configuration for the remote control that will allow the user to operate all components of the home entertainment system. Because the home entertainment system includes a television, the Programming System prompts the user to select which cable provider is being used. Because the home entertainment system includes a CD jukebox, then user is asked if he wishes to enter CD title information. With each CD selected by the user, the Programming System uses the Internet to connect to a CD database server and obtain artist, title, and track information. The Programming System then provides the user with a list of common macros which the user may be interested in adding to his configuration. The Programming System then uses the Internet to connect to TVGuide.com and download the current television schedule. The Programming System then transfers all necessary code and data to the remote control. Finally, the Programming System asks the user if he wishes to print out a booklet that describes the operation of the configured remote control. 
         [0074]    Example: The user wishes to add the television channel “Global” to his list of preferred content. The user uses the Programming System to add the channel, and then the Programming System transfers the changed configuration to the remote control. Now, when the user browses available television channels on the remote control, the television channel “Global” is at the top of the list. 
         [0075]    Example: The user wishes to customize the operation of the remote control. The user uses the Programming System to change the default television show reminder to be ‘Sound an alarm 1 minute before the show starts’, and changes the navigation up key to select the function ‘View cable television channel  50 ’. 
         [0076]    It is noted that the Programming System may store the configuration information to allow the user to incrementally modify the configuration. For example, the user may add a new CD title to the CD jukebox. It is noted that the Programming System may be used to modify any aspect of the configuration (data and/or code) of the remote control. For example, this can even include complete functionality changes where one user develops software designed to control a home automation system, and then allows other users to use the Programming System to configure their remote control s with the new software and associated data. 
         [0077]    It is noted that the Programming System may use any available information to assist the user in customizing the operation of the remote control, including but not limited to: 
         [0078]    Device Network Information 
         [0079]    User Preferences 
         [0080]    Sample configurations provided by other users. 
         [0081]    It is noted that the Programming System is designed to make the remote control simple to configure for a novice user. For example, if the user has specified to the Programmer  10  (see  FIGS. 12 and 13 ) that they wish to control a television and videocassette recorder, then the Programmer  10  may allow the user to select from common operations that are performed with systems containing a television and videocassette recorder. Examples of such operations include ‘Play a videotape’ and ‘Record a television show’. If the user chooses to accept such an operation, then the Programming System configures the remote control in such a manner as to ensure that when the user selects the operation ‘Play a videotape’ then the remote control sends control signals as required to direct the Device Network to perform the desired operation (if possible). 
         [0082]    It is noted that the remote control may be purchased pre-configured to the user&#39;s preferences, in which case configuration via the Programming System is optional. 
         [0083]    It is noted that the remote control may be configured using the user input module  5 , user output module  6  and device communication module  3 , in which case the remote control is the sole component of the Programming System, and the connection to the Interface System  10  is optional. For example, the remote control can be instructed to ‘learn’ a remote control code from an infrared remote control, as is well known in the art. 
         [0084]    It is noted that the remote control may be configured using just the Interface System  10 , in which case the Interface System  10  is sole component of the Programming System. 
         [0085]    It is noted that the Programming System may display arbitrary information to the user. For example, while the remote control is communicating with the Programming System the user may be shown advertising based on the types of television shows that the user enjoys watching. 
         [0086]    It is noted that the user may use the remote control to alter any aspect of the configuration of the remote control. For example, the user may instruct the remote control to remember a sequence of commands and assign them to a new menu option. 
         [0087]    It is noted that the user may interact with the Programming System when the remote control is not connected to the Programming System, in which case any changes will be transferred to the remote control at a later date. 
         [0088]    Therefore, the foregoing is considered as illustrative only of the principles of the invention. Further, since numerous modifications and changes will readily occur to those skilled in the art, it is not desired to limit the invention to the exact construction and operation shown and described, and accordingly, all suitable modifications and equivalents may be resorted to, falling within the scope of the invention.