Abstract:
A first remote control application is configured to cause a smart device to transmit at least one command for controlling at least one functional operation of a controllable appliance in response to a user interface element of the smart device being activated while a second remote control application of a bridge device is configured to cause the bridge device to transmit at least one command for controlling at least one functional operation of the controllable appliance in response to receiving at the bridge device the at least one command transmitted from the smart device. The at least one command is transmitted from the smart device using a first transmission protocol and the at least one command is transmitted from the bridge device using a transmission protocol recognized by the controllable appliance.

Description:
RELATED APPLICATION INFORMATION 
       [0001]    This application claims the benefit of and is a continuation of U.S. application Ser. No. 13/328,416, filed on Dec. 16, 2011, which application claims the benefit of and is a continuation-in-part of U.S. patent application Ser. No. 12/148,444, filed Apr. 18, 2008, and which application also claims the benefit of and is a continuation-in-part of U.S. patent application Ser. No. 13/071,661, filed Mar. 25, 2011. 
         [0002]    The disclosures of both of these applications are incorporated herein by reference in their entirety. 
     
    
     BACKGROUND 
       [0003]    Controlling devices, for example remote controls, for use in issuing commands to entertainment and other appliances, and the features and functionality provided by such controlling devices are well known in the art and have become ubiquitous in the home. Wireless network technologies such as WiFi, Bluetooth, etc., are increasing deployed in homes in support of personal communication, productivity, and entertainment devices such as tablet computers, smart phones, portable email devices, e-books, hand-held games and/or game controllers, portable media players, etc. (all referred to hereafter as “smart devices”). 
       SUMMARY 
       [0004]    This invention relates generally to controlling devices such as remote controls, and more specifically to controlling devices which incorporate wireless networking capability. In an exemplary embodiment, a controlling device may be provisioned with a wireless network interface such as a WiFi transceiver and associated programming in addition to conventional IR and/or RF transmitters and/or transceivers for issuing appliance commands. This wireless network interface may be used to receive and relay appliance command requests from other devices present on the network, for example smart phones, tablet or desktop computers, or if enabled, even distant devices via a wide area network such as the Internet. Further, in some embodiments the controlling device, for example a universal remote control, may utilize such a wireless networking capability to communicate with local appliances or Internet based services to facilitate setup and configuration of the controlling device, for appliance identification purposes, etc. 
         [0005]    A better understanding of the objects, advantages, features, properties and relationships of the invention will be obtained from the following detailed description and accompanying drawings which set forth illustrative embodiments and which are indicative of the various ways in which the principles of the invention may be employed. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0006]    For a better understanding of the various aspects of the invention, reference may be had to preferred embodiments shown in the attached drawings in which: 
           [0007]      FIG. 1  illustrates an exemplary system in which a controlling device constructed in accordance with the instant invention may be utilized; 
           [0008]      FIG. 2  illustrates in block diagram form components of the exemplary controlling device of  FIG. 1 ; 
           [0009]      FIGS. 3 and 4  further illustrate systems in which an exemplary controlling device constructed in accordance with the invention may be utilized; 
           [0010]      FIG. 5  illustrates an exemplary operational flow as may be implemented in configuring a smart device to utilize features of the controlling device of  FIGS. 1 and 4 ; and 
           [0011]      FIG. 6  illustrates an exemplary operational flow as may be implemented to cause a user-requested appliance command to be issued in accordance with this invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0012]    With reference to  FIG. 1 , there is illustrated an exemplary system in which a controlling device  100  is configured to control various controllable appliances, such as a television  102 , an AV receiver  104  and a set top box (“STB”)  106 . As is known in the art, the controlling device  100  may be capable of transmitting commands to the appliances, using any convenient IR, RF, Point-to-Point, or networked protocol  122 , to cause the appliances to perform operational functions. While illustrated in the context of a television  102 , AV receiver  104 , and STB  106 , it is to be understood that controllable appliances may include, but need not be limited to, televisions, VCRs, DVRs, DVD players, cable or satellite converter set-top boxes (“STBs”), amplifiers, CD players, game consoles, home lighting, drapery, fans, HVAC systems, thermostats, personal computers, etc. Controlling device  100  may be further adapted to support a wireless communication interface  126  to a local network, for example a home WiFi network enabled by a router and wireless access point  112 . Exemplary other devices with wireless access to the network may include a smart phone  108 , a tablet computer  110 , and STB  106 . Router  112  may also offer wired access  114  to the local network, for example supporting a desktop computer  116 . Access to a wide area network  120  such as the Internet may be available through router  112  and network gateway device  118  such as a cable modem, DSL service, etc. In some embodiments, certain appliances may be digitally interconnected, for example via HDMI interface cables  124 . It will be appreciated that although the illustrative WiFi network of  FIG. 1  is depicted as operating in the so-called “WiFi infrastructure mode”, i.e., with all devices communicating through a common central switching means (e.g., router  112 ), in many applications certain WiFi-enabled devices may also be adapted to communicate directly with one another on a point-to-point basis using the so-called “WiFi direct” or “ad hoc networking” mode of operation. Accordingly, in the further illustrations that follow WiFi links between devices may be depicted for simplicity in the form of direct paths with the understanding that any available WiFi operational mode may be used without limitation, as appropriate for a particular embodiment. 
         [0013]    With reference to  FIG. 2 , for use in commanding the functional operations of one or more appliances, the controlling device  100  may include, as needed for a particular application, a processor  200  coupled to a ROM memory  204 , a non-volatile read/write memory  206 , a RAM memory  205 , a key matrix  216  (e.g., hard keys, soft keys such as a touch sensitive surface overlaid on a liquid crystal (LCD), and/or an electroluminescent (EL) display), transmission circuit(s) and/or transceiver circuit(s)  210  (e.g., IR and/or RF) for use in issuing commands to controlled appliances, a means  202  to provide feedback to the user (e.g., one or more LEDs, illuminable keys, display, speaker, and/or the like), an input/output port  218  such as a serial interface, USB port, modem, etc., a power source  220  such as a battery, and clock and timer logic  212  with associated crystal or resonator  214 , a local network interface and transceiver  222  such as for example an IEEE 802.11 “WiFi” interface, and in certain embodiments a low power timing device  224  which may be incorporated into processor  200 , for example in the form of a nanopower ring oscillator as may be found in the MAXQ610 microprocessor available from Maxim Integrated Products Inc., may form part of local network interface  222 , or may comprise a separate component. 
         [0014]    As will be understood by those skilled in the art, some or all of the memories  204 ,  205 ,  206  may include executable instructions (collectively, the controlling device program memory) that are intended to be executed by the processor  200  to control the operation of the controlling device  100 , as well as data which serves to define the necessary control protocols and command values for use in transmitting command signals to controllable appliances (collectively, the command data). In this manner, the processor  200  may be programmed to control the various electronic components within the controlling device  100 , e.g., to monitor the key matrix  216  and/or network interface  222 , to cause the transmission of signals, etc. The non-volatile read/write memory  206 , for example an EEPROM, battery-backed up RAM, FLASH, Smart Card, memory stick, or the like, may additionally be provided to store setup data and parameters as necessary. While the memory  204  is illustrated and described as a ROM memory, memory  204  can also be comprised of any type of readable media, such as ROM, FLASH, EEPROM, or the like. Preferably, the memories  204  and  206  are non-volatile or battery-backed such that data is not required to be reloaded after battery changes. In addition, the non-transitory memories  204 ,  205  and  206  may take the form of a chip, a hard disk, a magnetic disk, an optical disk, and/or the like. Still further, it will be appreciated that some or all of the illustrated memory devices may be physically combined (for example, a single FLASH memory may be logically partitioned into different portions to support the functionality of memories  204  and  206  respectively), and/or may be physically incorporated within the same IC chip as the microprocessor  200  (a so called “microcontroller”) and, as such, they are shown separately in  FIG. 2  only for the sake of clarity. 
         [0015]    To cause the controlling device  100  to perform an action, the controlling device  100  is adapted to be responsive to events, such as a sensed user interaction with the key matrix  216 , receipt of a network transmission, etc. In response to an event, appropriate instructions within the program memory (hereafter the “controlling device operating program”) may be executed. For example, when a command function key is actuated on the controlling device  100 , the controlling device  100  may retrieve from the command data stored in memory  204 ,  205 ,  206  a command value and control protocol corresponding to the actuated function key and, where necessary, current device mode and transmit that command to an intended target appliance, e.g., STB  106 , in a format recognizable by that appliance to thereby control one or more functional operations of that appliance. It will be appreciated that the controlling device operating program can be used not only to cause the transmission of commands and/or data to the appliances, but also to perform local operations. While not limiting, local operations that may be performed by the controlling device  100  may include displaying information/data, favorite channel setup, macro key setup, function key relocation, etc. Examples of local operations can be found in U.S. Pat. Nos. 5,481,256, 5,959,751, and 6,014,092. Additionally, in the instant invention the controlling device operating program of exemplary controlling device  100  may be operative to send and receive messages via local network transceiver  222  as will be disclosed in greater detail hereafter. In certain embodiments the controlling device operating program may utilize low power timer  224  to periodically wake processor  200  from a quiescent state in order to monitor transceiver  222  for incoming messages, for battery conservation purposes as are known in the art. 
         [0016]    In some embodiments, controlling device  100  may be of the universal type, that is provisioned with a library comprising a multiplicity of command codes and protocols, i.e., command data, suitable for controlling various appliances. In such cases, for selecting sets of command data to be associated with the specific appliances to be controlled (hereafter referred to as a setup procedure), data may be entered into the controlling device  100  that serves to identify each intended target appliance by its make, and/or model, and/or type. Such data allows the controlling device  100  to identify the appropriate command data set within the library of command data that is to be used to transmit recognizable commands in formats appropriate for such identified appliances. The library of command data may represent a plurality of controllable appliances of different types and manufacture, a plurality of controllable appliances of the same type but different manufacture, a plurality of appliances of the same manufacture but different type or model, etc., or any combination thereof as appropriate for a given embodiment. In conventional practice as is well known in the art, such data used to identify an appropriate command data set may take the form of a numeric setup code entered via activation of those keys that are also used to cause the transmission of commands to an appliance (obtained, for example, from a printed list of manufacturer names and/or models with corresponding code numbers, from a support Web site, etc.). Alternative setup procedures known or proposed in the art include scanning bar codes, sequentially transmitting a predetermined command in different formats until a target appliance response is detected, user interaction with a Web site culminating in downloading of command data and/or setup codes to the controlling device, etc. Since such methods for setting up a controlling device to command the operation of specific home appliances are well-known, these will not be described in greater detail herein. Nevertheless, for additional information pertaining to setup procedures, the reader may turn, for example, to U.S. Pat. Nos. 4,959,810, 5,614,906, or 6,225,938, all of like assignee and incorporated herein by reference in their entirety. 
         [0017]    In yet further alternative setup procedures, in certain embodiments a controlling device with WiFi or other local network connectivity may utilize this connectivity to facilitate the identification of intended target appliances and their associated command data sets. As illustrated in  FIG. 3 , exemplary controlling device  100  may communicate directly  302  with an appliance, for example STB  106 , in order to execute an interactive setup procedure as described in U.S. Pat. No. 7,969,514, or to download appliance identification data stored in the memory of appliance  106  or derived from other appliances which share an HDMI interconnection  124  such as TV  102  or AV receiver  104 , for example as described in co-pending U.S. patent applications Ser. No. 12/716,365, entitled “Digital Interconnect of Entertainment Equipment in the Home,” Ser. No. 13/240,604 entitled “System and Method for Configuring Controlling Device Functionality,” Ser. No. 13/198,072 entitled “System and Method for Configuring the Remote Control Functionality of a Portable Device,” all of common ownership and all incorporated herein by reference in their entirety, or in the before mentioned Ser. No. 12/148,444 entitled “Using HDMI-CEC to Identify a Codeset,” of which this application is a continuation-in-part. Once the desired appliance has been identified, an appropriate command data set may be selected from a library of command data sets preloaded in the memory of controlling device  100 ; or may be downloaded into controlling device  100  from a library of command data sets stored on a local appliance, for example STB  106 , or on a network accessible server  130 . In the event the command data set library is located on a Web server  130 , the requisite data set may be provisioned to a WiFi enabled controlling device  100  either by direct interaction  304  with the Internet  120 , or via an intermediate appliance such as STB  106 , as appropriate for a particular embodiment. 
         [0018]    With reference to  FIG. 4 , once so configured an exemplary controlling device  100 , in addition to its conventional functionality, may be adapted to make itself available as a bridge or relay device to issue appliance commands  402  in response to requests  404  received via a wireless local network from, for example, a remote control app resident in a smart device  108 , as will now be described in further detail. 
         [0019]    Turning now to the flowchart of  FIG. 5 , after installation on a smart device such as  108  of  FIG. 4  a remote control app may be placed into a setup mode at step  502 . The setup mode may be initiated for example by user activation of a “setup” icon, automatically upon initial installation, etc., as appropriate. Once in the setup mode, at steps  504  and  506  the remote control app may determine, via additional user input for example, whether the setup mode was invoked to configure a new location or to select an existing location. By way of explanation, in some embodiments a remote control app may be capable of supporting multiple appliance configurations and multiple associated network-enabled controlling devices, corresponding for example to living room/bedroom locations, town home/vacation home locations, etc. As will be appreciated step  504  may be omitted, for example if no location is currently configured or in those embodiments in which only a single location configuration is supported, etc. If neither of these operations is indicated, at step  522  other setup operations appropriate to a particular app may be performed, for example and without limitation programming of activity macros (to the extent these are not already available through controlling device  100 ), entry of favorite channel information, setting of parental controls, etc. 
         [0020]    If it is determined at step  506  that a new location is to be configured, at step  508  the app resident in smart device  108  may initiate discovery of other devices present on the local wireless network, and in particular devices which identify themselves as compatible command relay platforms. If no such devices are found an appropriate error report is communicated to the user at step  524 , whereupon the app may exit setup mode. If, however, compatible command relay device(s) are found, at step  512  the app and a relay device may be paired, i.e., numeric or alphanumeric codes, key values, hardware addresses, serial numbers, etc. may be exchanged between the app and the relay device (sometimes requiring user interaction such as entering a numeric value presented on a display, printed on a label, etc.) in order that they may uniquely recognize transmissions from one another in the future. In the event more than one compatible relay device was located at step  508 , step  512  may also include soliciting input from a user to select a particular command relay device. This pairing step may also comprise user provision of a location name or other identifier by which this particular command relay device and its associated appliances may be identified in the future. In suitably equipped smart devices this step may also include the association of GPS coordinates with the stored configuration. If it is determined at step  514  that pairing could not be successfully completed, an error message is displayed as before and the app exits setup mode. 
         [0021]    Once paired, at step  516  the smart device app may use the now-established communication path to request appliance configuration information from controlling device  100 . Such information may comprise, for example one or more of the number and types of appliances currently configured in controlling device  100 ; the identities of the command code data sets currently in use by controlling device  100  for issuing commands to target appliances; the configured appliance identification data such as brand or model numbers, etc. Such information may be used by the smart device app at step  518  to retrieve information for use in configuring GUI pages, for example listings of supported commands, display icons, etc., which may be downloaded from a Web server  130 . In an alternate embodiment, information regarding which specific command functions are supported by each of the appliances may be provided directly by controlling device  100  in place of, or in addition to, the Web downloaded data. In a yet further alternate embodiment, an identity associated with the controlling device  100  itself may be utilized either in place of or in conjunction with the previously described methods. For example, in cases where controlling device  100  was provided as original equipment together with a target appliance, e.g. AV receiver  104 , a MAC address, serial number, or other identifying data procured from controlling device  100  may be referred to a web service  130  whereat a database cross-referencing controlling device MAC addresses, serial numbers, etc., to the specific appliances with which they were shipped may be utilized to exactly identify a target appliance, e.g. AV receiver  104 , and its corresponding features and command code set. At step  520  this information may then be used to configure the smart device app GUI to match the appliances to be controlled, for example by removal of unsupported functions or addition of supported functions in touch screen display pages, incorporation of appliance or brand specific icons or logos, etc. As will be appreciated, in certain small footprint embodiments of a remote control app, such GUI customization may be forgone in favor of a standardized default GUI which may present only frequently used command functions which are common to a majority of appliance brands and models. Once any such GUI customization is concluded, setup is complete and the app may exit the setup mode or conduct any further location dependent configuration steps, for example communicating with controlling device  100  or STB  106  to download favorite channel settings applicable to the current location. 
         [0022]    Returning to step  504 , if it is determined that the setup mode was initiated in order to change the currently assigned location, at step  526  the user may be requested to select a location to be configured, for example from a displayed list of location identities previously supplied by the user(s) at step(s)  512 . Alternatively, in suitably equipped smart devices the current GPS coordinates may be compared to those previously associated with the presently selected location and location reconfiguration automatically trigged if these coordinates differ by a significant amount, e.g., by more than a room size for room locations or by a house/yard size for house locations. Regardless, at step  530  it is then determined if the relay device associated with that location is in fact present in the current environment, i.e., is discoverable. If not, at step  532  an appropriate error message is displayed and the app exits setup mode. If the relay device is confirmed as present, at step  534  it may next be determined if the command relay device remains paired. By way of explanation, in some embodiments a controlling device which is also operable as a command relay device may be adapted to cancel or void its pairing information if the controlled appliances are reconfigured, for example an appliance is deleted or replaced, a new appliance is added, etc. In such cases, step  534  may cause the smart device app to continue at step  516 , thereby reconfiguring the app to conform to the new appliance configuration. If however no changes have been made and the relay device remains paired, then processing may continue at step  520  which may configure the app GUI to match the selected location. 
         [0023]    Once configured, an exemplary smart device remote control app may be operative to cause appliance commands to be issued as will now be described in conjunction with FIG.  6 . When invoked at step  602 , the smart device remote control app may load and present a GUI at step  604 , e.g., display a set of icons representing touch-activated command functions comprising one or more pages, which GUI may have been configured and associated with the current location of the smart device as described previously. At step  610  the exemplary smart device remote control app may then await user input such as actuation of a touch icon, a hard key, a gesture or motion, etc. Upon receipt of user input, at step  612  it may then be determined if the input comprises an appliance command request. If not, at steps  606  and  608  other input functions may be processed, for example app termination and exit, display of additional pages of command icons, etc. 
         [0024]    If it is determined that the received input comprises a request for an appliance command, at step  614  the requested function is encoded using a standardized set of generic function indicators and appliance type indicators which are compatible with the controlling device operating program of an associated relay device, e.g., controlling device  100  of the instant example. In this regard, any convenient set of standard function and appliance type indicators which is supported by both requesting and receiving devices may be utilized as appropriate for a particular embodiment. For reference and without limitation, examples of such sets of standardized indicators may be found in U.S. patent applications Ser. No. 11/088,694 or Ser. No. 12/716,365, both of common ownership and incorporated herein by reference in their entirety. Thereafter at step  616  a request comprising the standard function indicator information may be communicated via the local network to relay device  100 . 
         [0025]    Upon receipt of such a request at step  620 , at step  622  the controlling device operating program of a command relay device such as the exemplary controlling device  100  may retrieve from codeset data stored in memory  204 , 205 , 206  the command value and control protocol information which corresponds to the requested appliance and function. Thereafter at step  624  this retrieved information may be employed to transmit a command signal which will cause the designated appliance to perform the desired operation. 
         [0026]    While various concepts have been described in detail, it will be appreciated by those skilled in the art that various modifications and alternatives to those concepts could be developed in light of the overall teachings of the disclosure. For example, while presented above in the form of an illustrative embodiment in which a WiFi enabled controlling device interacts with an app resident in a smart device, it will be appreciated that the methods described herein may be utilized in conjunction with any suitable local network technology, e.g., Bluetooth, Zigbee, Zwave, etc., and may serve to provide appliance control functionality to apps and/or other software programming resident in many different types of devices, e.g. smart devices, PCs, game consoles, home automation systems, etc., local or remote. 
         [0027]    Further, while described in the context of functional modules and illustrated using block diagram format, it is to be understood that, unless otherwise stated to the contrary, one or more of the described functions and/or features may be integrated in a single physical device and/or a software module, or one or more functions and/or features may be implemented in separate physical devices or software modules. It will also be appreciated that a detailed discussion of the actual implementation of each module is not necessary for an enabling understanding of the invention. Rather, the actual implementation of such modules would be well within the routine skill of an engineer, given the disclosure herein of the attributes, functionality, and inter-relationship of the various functional modules in the system. Therefore, a person skilled in the art, applying ordinary skill, will be able to practice the invention set forth in the claims without undue experimentation. It will be additionally appreciated that the particular concepts disclosed are meant to be illustrative only and not limiting as to the scope of the invention which is to be given the full breadth of the appended claims and any equivalents thereof. 
         [0028]    All patents cited within this document are hereby incorporated by reference in their entirety.