Patent Publication Number: US-11656743-B2

Title: System and method for flexible configuration of a controlling device

Description:
RELATED APPLICATION INFORMATION 
     This application claims the claims the benefit of and is a continuation of U.S. application Ser. No. 16/596,622, Oct. 8, 2019, which application claims the benefit of and is a continuation of U.S. application Ser. No. 15/632,775, filed on Jun. 26, 2017, which application claims the benefit of and is a continuation of U.S. application Ser. No. 13/673,271, filed on Nov. 9, 2012, which application claims the benefit of and is a divisional of U.S. application Ser. No. 12/629,423, filed on Dec. 2, 2009, which application claims the benefit of U.S. Provisional Patent Application No. 61/201,021, filed on Dec. 5, 2008, and which also claims the benefit of and is a continuation-in-part of U.S. application Ser. No. 11/357,681, filed Feb. 16, 2006, which in turn is a continuation-in-part of U.S. application Ser. No. 11/218,900 (now U.S. Pat. No. 7,266,777), filed on Sep. 2, 2005, which in turn claims the benefit of U.S. Provisional Patent Application Nos. 60/608,183, filed on Sep. 8, 2004, and U.S. Provisional Patent Application No. 60/705,926, filed on Aug. 5, 2005. 
     Each of these applications is incorporated herein by reference in their entirety. 
    
    
     BACKGROUND 
     The following relates generally to controlling devices and, more particularly, to a configurable controlling device having an associated editor program for use in configuring, among other things, the user interface and functionality of the controlling device. 
     Editor programs for configuring a controlling device, such as a hand held remote control, are known in the art. For example, U.S. Pat. No. 6,211,870 illustrates and describes a controlling device which is programmable from a PC using an advanced, object-oriented user interface. More particularly, multiple user selectable screen objects may be created on the PC and transferred to the controlling device. The screen objects include screen layout and descriptions of soft keys to be displayed on a graphic display of the controlling device, as well as commands associated with the screen object, the soft keys and/or programmable keys on the remote control unit. The user may then select any of the screen objects once they have been transferred to the controlling device to control the operation of various appliances. 
     Similarly, PCT published application no. WO 00/39772 discloses a universal, programmable remote control device which has programming that enables an end-user to customize the remote control device through editing or programming of the control functionalities of the remote control device. The programming is achieved via a PC. In this manner, the control configuration created via an editor on the PC can be downloaded into the device. It is additionally disclosed that the PC has emulator software to test the configuration before downloading. It is to be understood that WO 00/39772 generally discloses the editor for the Philips&#39; “Pronto” brand remote control. 
     Increasingly, such programmable controlling devices are utilized in environments which include networked and/or interactive appliances. While these known controlling devices and associated editor programs do continue to work for their intended purpose in such environments, programming of these controlling devices has become increasingly tedious and in many instances cannot be accomplished without a detailed knowledge of the exact configuration of the target appliance network or, in some cases, without the physical presence of a fully operational appliance network during the programming process. 
     SUMMARY 
     The following generally discloses an editor program for use in configuring a user interface of a controlling device, together with a configurable controlling device such as a hand-held remote control unit. The editor program allows a user to create on a personal computer for downloading to the controlling device a graphical user interface comprised of user interface pages having icons which icons, when activated on the controlling device, cause the controlling device to perform a function, such as to transmit a command to an appliance, to change the user interface display, etc. The editor program provides, among other things, for selection and placement of icons onto user interface display pages, assignment of commands to function keys (both iconic and hard keys), assignment of backgrounds to user interface pages or groups of pages, creation of icon-activated user-defined command sequences, pre-rendering of user interface pages prior to downloading of the user interface to the controlling device, etc. Advantageously, in an exemplary embodiment the user interface editor and the operating software of the controlling device may also support the creation and editing of n-state widgets, which are unitary GUI objects comprising one or more touch activated areas together with one or more display graphics (not necessarily in a one-for-one relationship) and which are capable of both initiating parameterized command functions in response to touch inputs, as well as receiving and acting upon status responses from target appliances. Each of the attributes of an n-state widget (touch area(s), command functions, display data, response behavior) are abstracted from the others and may be independently edited, and not all are required to be present in a given instance of such a widget. 
     In a further advantageous embodiment, the user interface editor may provide for the creation of virtual devices, that is, appliances which are defined in terms of abstract functionality without any attachment to a physical network address, command transmission format, etc. Using such virtual devices, a complete graphical user interface system may be designed and implemented independently of actual target appliance and network specifications. Upon download of such GUI programming into a compatible controlling device, the operating software of the controlling device may guide a user through a setup process in which virtual devices are linked to physical appliances present in that controlling device&#39;s environment. In this manner, graphical user interface system development is enabled without necessitating the physical presence of target appliances, as well as the creation of template GUIs which may be reused multiple times in different appliance environments. 
     The various advantages, features, properties and relationships of this improved user interface editor and controlling device system will be obtained from the following detailed description and accompanying drawings which set forth illustrative embodiments which are indicative of the various ways in which the principles thereof may be employed. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       For use in better understanding the user interface editor and configuration distribution system and related methods described hereinafter reference may be had to the following drawings in which: 
         FIG.  1    illustrates an exemplary home entertainment system in which the exemplary controlling devices may be utilized; 
         FIG.  2    illustrates a block diagram of components of an exemplary controlling device; 
         FIGS.  3   a  and  3   b    illustrates exemplary editing systems which may be used to configure and download a controlling device configuration, including a user interface, to an exemplary controlling device; 
         FIG.  4    illustrates an exemplary home page graphical user interface (“GUI”) for a touch screen of a controlling device; 
         FIG.  5    illustrates an exemplary device selection page GUI for the touch screen of a controlling device; 
         FIG.  6    illustrates an exemplary device control page GUI for the touch screen of a controlling device; 
         FIG.  7    illustrates another exemplary device control page GUI for the touch screen of a controlling device; 
         FIG.  8    illustrates yet another exemplary device control page GUI for the touch screen of a controlling device; 
         FIG.  9    illustrates an exemplary PC-based editor used to create the appearance and functionality of the GUI of  FIG.  4   ; 
         FIG.  10    illustrates an exemplary PC-based editor as used to create the appearance and functionality of the GUI of  FIG.  8   ; 
         FIGS.  11 ,  12 A,  12 B,  13 A, and  13 B  illustrate the PC-based configuration process of an exemplary multi-state widget; 
         FIGS.  14 A and  14 B  illustrate the PC-based configuration process of a second exemplary multi-state widget; 
         FIG.  15    illustrates the PC-based configuration process of a third exemplary multi-state widget; 
         FIG.  16    illustrates the PC-based configuration of an exemplary repetitive polling process for obtaining appliance information to be used by the multi-state widgets illustrated in  FIGS.  14  and  15   ; 
         FIG.  17    illustrates an exemplary virtual device linkage initiation GUI page for the touch screen of a controlling device; 
         FIGS.  18 A and  18 B  illustrate an exemplary virtual device linkage definition and test GUI pages for the touch screen of a controlling device; and 
         FIGS.  19 A,  19 B,  19 C, and  19 D  illustrate exemplary touch screen GUI pages for the synchronization of the link tables of a pair of controlling devices. 
     
    
    
     DETAILED DESCRIPTION 
     The following discloses a controlling device having a face panel on which is carried a user interface activatable to cause transmission of at least one command to at least one appliance. Turning now to the figures, wherein like reference numerals refer to like elements,  FIG.  1    illustrates an exemplary system including controllable appliances, such as a set top box (“STB”)  104 , a DVD player  106 , an audio amplifier/receiver  108 , a television  102 , a lighting fixture  110  and associated multilevel dimmer  114 , and a thermostat  112  as well as a controlling device  100 . The controlling device  100  is capable of transmitting commands to the appliances, using any convenient IR or RF, point-to-point or networked, protocol to cause the appliances to perform operational functions. While illustrated in the context of a STB  104  with DVD player  106 , audio system  108 , television  102 , lighting fixture  110  and thermostat  112  it is to be understood that controllable appliances can include, but are not limited to, televisions, VCRs, DVRs, DVD players, cable or satellite converter set-top boxes (STBs), amplifiers, media streaming devices, CD players, game consoles, home lighting, drapery controls, fans, HVAC systems, thermostats, door locks, security systems and cameras, personal computers, etc., and, as such, the instant exemplary disclosures are not intended to be limiting as to type or quantity of controllable appliances or equipment. 
     Turning now to  FIG.  2   , for use in transmitting command codes to one or more of the appliances, the controlling device  100  of the exemplary system may include, as needed for a particular application, a processor  200  coupled to a memory device (such as ROM memory  204 , RAM memory  202 , and/or a non-volatile memory  206 ), a key matrix  216  (e.g., physical buttons, a touch sensitive display with soft keys, or a combination thereof), an internal clock and timer  222 , an IR (and/or RF) transmitter  208  for directly issuing commands to controlled appliances, one or more RF (and/or IR) wireless transmission and reception circuit(s)  210 ,  212  for issuing commands to controlled appliances via a network and/or transferring data or commands between the controlling device and other networked controlling devices or external computing devices such as a PC, a physical input/output interface  224  for use in directly transferring data between the controlling device and an external computing devices such as a PC, STB, etc., a means  218  to provide visual feedback to the user (e.g., LCD display or the like, which may underlay all or part of a touch sensitive portion of key matrix  216 ), a means  220  to provide audio feedback (speaker, buzzer, etc.) and a power supply  214  all as generally illustrated in  FIG.  2   . As will be understood by those of skill in the art, the memory device(s) may include executable instructions that are intended to be executed by the processor  200  to control the operation of the controlling device  100 . 
     The non-volatile read/write memory  206 , for example an EEPROM, battery-backed up RAM, Smart Card, memory stick, or the like, may be provided to store setup data and parameters as necessary. It is to be additionally understood that the memory devices may take the form of any type of readable media, such as, for example, ROM, RAM, SRAM, FLASH, EEPROM, Smart Card, memory stick, a chip, a hard disk, a magnetic disk, and/or an optical disk. Still further, it will be appreciated that some or all of the illustrated memory devices  202 ,  204 , and  206  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. 
     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 data or signal transmission, etc. In response to an event appropriate instructions within the memory may be executed. For example, when a command key is activated on the controlling device  100 , the controlling device  100  may retrieve a command code corresponding to the activated command key from memory  204  or  206  and transmit the command code to a device in a format recognizable by the device. It will be appreciated that the instructions within the memory can be used not only to cause the transmission of command codes and/or data to the appliances but also to perform local operations. While not limiting, other local operations that may be performed by the controlling device  100  include execution of pre-programmed macro command sequences, displaying information/data, manipulating the appearance of a graphical user interface presented on a local LCD display  218 , etc., and in an exemplary embodiment illustrative of the instant inventive concepts, managing the linkage between virtual devices defined by a GUI editing program and real devices present in the controlled environment. For convenience and economy of development effort, the software programming of controlling device  100  may utilize an underlying operating system such as, for example, Microsoft&#39;s “Windows CE” or “Windows Mobile” brand operating systems. 
     As contemplated in the above referenced and related U.S. patent application Ser. Nos. 11/357,681 and 11/218,900 and provisional applications 60/608,183 and 60/705,926, the graphical user interface (“GUI”) and certain functionalities of controlling device  100  may be defined via a software based editing tool  300  which may be supplied as an application program to be installed on a PC  302  running an operating system, for example, a Microsoft “Windows” brand operating system, as generally illustrated in  FIGS.  3   a  and  3   b    and described in further detail hereinafter. In the illustrative examples that follow, it will be appreciated by those skilled in the art that development tools such as Microsoft&#39;s Visual Studio, the C# programming language, and various third party libraries may be used to facilitate creation of the software comprising exemplary editing tool  300  and exemplary controlling device  100  GUI and functionality. 
     Editor application  300  may be offered by the manufacturer of the controlling device  100  on a CD ROM, for download from a Web site, etc., as appropriate for installation on a PC of the user&#39;s choice. Once the editor application is installed on the user&#39;s PC  302 , the controlling device GUI may be created or revised using the editor application, stored locally as a file  310  on PC  302  and/or caused to be downloaded into controlling device  100  via a hardwired connection  304 , a wireless link  306  (e.g., WiFi, Bluetooth, Zigbee, etc.) or any other convenient means. Additionally, it will be appreciated that the editor application  300 , although primarily resident on the user&#39;s local PC  302 , may also be adapted to access additional data items from remotely located servers via the Internet  308 , from appliances linked to the PC  302  via a home network, etc. Examples of such items may include, without limitation, IR command codes (e.g., to allow for support of new appliances), data which indicates operations supported by an appliance, device model number cross-references (e.g., for entering into the controlling device for set-up purposes as disclosed in, for example, U.S. Pat. No. 6,587,067), operational software updates for controlling device  100 , etc. It will also be appreciated that in such an environment data may also be uploaded from PC  302  to a centralized repository, e.g., a remotely located, Internet accessible server. Such uploaded information may include, for example, current user configurations, learned IR code data, etc., and may be comprised of or derived from data stored locally on PC  302  (for example, file  310 ) and/or data retrieved from controlling device  100  during the times controlling device  100  is coupled to PC  302 . 
     Certain aspects of the operation of exemplary controlling device  100  will now be discussed in conjunction with  FIGS.  4  through  8   . In this context, as will be appreciated by those familiar with the relevant art and/or with the previously referenced parent and U.S. provisional applications, the actual appearance and functionality of all the GUI pages in controlling device  100  represent only one instance of the output of editor application  300 . It will thus be understood that the GUIs and associated functionality presented herein are by way of example only and not intended to be limiting in any way. 
     Controlling device  100  may include both a touch activated LCD screen  218  with soft keys (or other form of touch panel) and several groups of hard buttons  414 ,  416 ,  418 ,  420 . The hard buttons groups might comprise, for example, a volume control group  416  (e.g., volume up, down, and mute), a channel changing group  418  (e.g., channel up, down, and return), a navigation group embodied in disk  414  (e.g., for menu navigation and selection including up, down, left, right, and enter/select), and/or a row of programmable keys  420  (e.g., keys for supporting macros or other to-be-configured functions). 
     Upon start of operation, or any time the “Home” button  422  (e.g., on the side of the device) is activated, an exemplary Home Page GUI  400  may be presented within the display. The illustrated, exemplary home Page  400  includes five touch-activated buttons. By way of example only, touching icon  402  may be used to initiate the activity of watching cable TV by causing controlling device  100  to transmit the commands required to power on cable STB  104 , power on TV  102 , select the TV input to which the cable STB is connected, and then cause the controlling device GUI to transition to a page (e.g., display having soft keys, an EPG, or the like) from which cable STB channel selection may be input (for further tuning, retrieving related content information, etc.). Touching icon  404  may be used to similarly cause the controlling device to place the entertainment system into a condition suitable for watching a DVD movie, while touching icon  406  may be used to cause the controlling device to place the system into a condition suitable for listening to music. Touching icon  410  may be used to cause the controlling device to transition to another page  800  of the GUI (an example of which is shown in  FIG.  8   ) from which home automation functions such as control of illumination levels, room temperature, etc. may be initiated. Touching icon  408  may be used to cause the controlling device to transition to another page  500  of the GUI (an example of which is shown in  FIG.  5   ) from which individual appliance control pages may be called up, i.e., navigated to, using icons  502  (cable STB),  504  (TV),  506  (DVR player),  508  (audio receiver),  510  (lighting), and  512  (thermostat). Examples of individual appliance control pages are shown in  FIG.  6    (GUI page  600  having soft keys for use in controlling receiver input selection commands),  FIG.  7    (GUI page  700  having soft keys for use in controlling DVD transport functions), and  FIG.  8    (GUI page  800  comprising a pair of n-state widgets  802  and  804  for controlling multi-level dimmable lamp  110  and thermostat  112  respectively.) In this way it will be understood and appreciated that a plurality of commands and/or actions may be performed both locally on controlling device  100  and remotely on the various appliances under the control of controlling device  100  in response to a single or multiple interaction(s) by a user with the key matrix  216  of controlling device  100 . 
     Turning now to  FIG.  9   , the operation of the editing program  300  used to create the above-disclosed, exemplary GUI pages and associated functionality will be described in further detail. For this purpose, the PC screen display of the editor application may be divided into several windows or panels, each having a specific purpose. By way of example, the panels may be as follows: 
     Main project panel  902 , used to display the current GUI page being edited (Home Page  400  in this illustration) together with a representation  922  of the hard keys (keys  414  through  420 ) available on target controlling device  100 ; 
     Project View panel  904 , used to display all currently defined GUI pages in a tree structure form (which may, as depicted in the exemplary embodiment shown, have collapse [−] and expand [+] functionality including selective expansion of individual nodes and/or a collapse all/expand all feature) where the GUI page to be edited may be selected (e.g., by clicking on a link) from within the tree structure list and wherein the GUI page being displayed in the Main project panel  902  may be indicated by a highlight  918  (the Home Page in the instant illustration); 
     Properties panel  906 , used to display a list of (and allow editing of—for example by text entry, selection from drop down menus, etc.) the properties (such as the caption text and font attributes, symbol position, button type, etc.) associated with a presently selected GUI icon or hard key image within Main project panel  902  (GUI icon or soft key  404 ′ with label “DVD Movie” in this illustration, as indicated by the highlight (dotted line) around icon  404 ′ displayed in Main project panel  902 ); 
     Gallery panel  908 , used to display graphic images which may be dragged and dropped onto the GUI pages being edited wherein the Gallery choices may include sets of icons for use as buttons, page backgrounds, symbols for labeling buttons, key groups (to allow a group of related key icons, e.g. a numeric pad, to be dragged into place in a single operation), to allow pre-defined themes to be applied to single pages or groups of pages, or in an exemplary embodiment to allow home control interface items such as n-state widgets to be dragged and dropped onto GUI pages being edited, and wherein the Gallery in use (when multiple, organized Galleries are provided) is selected via tabs  914  according to the exemplary embodiment shown; 
     Actions panel  910 , used to display a list of (and allow editing of—for example by dragging and dropping to change the order, by deleting selected items, etc.) the actions to be performed by controlling device  100  when the currently selected icon (in the Main panel  902 ) is activated by a user when the user interface is provided to the controlling device (e.g., in the example presented, it can be seen that activating the “DVD Movie” icon  404 ′ will: (1) transmit a “Power On” command to DVD player  106 , (2) transmit a “Power On” command to TV set  102 , (3) wait one second for the devices to stabilize, then (4) transmit a “Component  2 ” input selection command to TV  102 , (5) transmit “DVD” input selection command to Audio Receiver  108 , and finally (6) jump to GUI page  700  corresponding to the DVD transport controls (illustrated in  FIGS.  7  and  10   ); and 
     Devices panel  912  which is preferably used to display a listing of all remote control commands available for each of the appliances setup to be controlled by controlling device  100  wherein the list of commandable functions for a given appliance to be displayed may be selected from a drop down list  916  (which in the illustrative example would comprise a TV  102 , a cable STB  104 , a DVD player  106 , and an audio receiver  108 ) and wherein the commandable functions so displayed may be assigned to any icon displayed in main project panel  902  by simply clicking and dragging a commandable function icon to, for example, a desired location with a listing of functions displayed in the Actions panel  910  and/or over an icon displayed in the Main panel (where it would be added, for example, to the top or bottom of the listing of commands within the Action panel display). 
     The operation of an exemplary editing program  300  used to create the above-disclosed, illustrative “Home control” GUI page  800  will be now described in further detail with reference to  FIGS.  10  through  13   . After selection of the appropriate GUI page from the page tree of Project View panel  904  (or creation of a new page via “add page” tab  1014  if no such page yet exists), selection of Home Control tab  1002  of the gallery panel may result in the display of various home control widgets  908 ′ available for use in configuring the controlling device GUI. In an illustrative example, a 4-state lighting control widget  1004  and thermostat control widget  1006  may be selected and dragged onto the GUI page currently under definition, at locations  1008  and  1010  respectively. Thereafter, these widgets may be associated with appliances to be controlled by selecting an appropriate appliance in devices panel  912  to be dragged and dropped onto each widget. By way of illustration, in the example presented a template multilevel lighting device  1012  has been selected and associated with widget icon  1008 . In this regard, in certain instances such devices may take the from of generic templates with the final linkage of GUI widgets to specific physical appliances deferred until such time as the completed GUI configuration is downloaded and installed on a specific controlling device, as will be described in greater detail in a subsequent section of this document. 
     As mentioned earlier, an n-state widget, such as 4-state lighting control widget  1008 , may comprise multiple touch areas, actions, images, and status responses all of which are independently variable. Once placed on a GUI page as described above, in an exemplary embodiment of editing program  300  double clicking image  1008  may initiate a widget configuration wizard  1100  superimposed on the standard PC screen display  1150  of editor application  300  as illustrated in  FIG.  11   . Such a wizard may include without limitation tabs  1102  and  1104  for configuration of control (widget outputs) and status feedback (widget input) functionalities respectively. When control tab  1102  is selected as illustrated in  FIGS.  11  and  12   , wizard display  1100  may include a listing  1106  of possible states, four in this specific example, from which the state currently under configuration may be selected, state one in this illustration. Configuration input areas may comprise a field  1008  into which may be entered a user-friendly descriptive name for the state; a drop-down menu  1110  for selection of a parameter value to be transmitted to the target appliance upon selection of this state, zero or “Off/Disable” in this instance, it being noted that this value may be a generic abstraction which may be converted to a real appliance command value at a later point when the widget is linked to a target appliance; a set of entries  1112  for defining the portion of the overall widget touch area which is to be associated with this state, expressed in an exemplary embodiment in terms of width and height, in pixels, and an X,Y starting coordinate relative to the top left corner of the overall widget area; and an image  1114  to be displayed upon activation of this touch area, which may be selected from a user library of images via a browse function  1116  as desired. 
     Turning now to  FIG.  12   , additional steps in configuring widget  1008  are illustrated (for clarity, background display  1150  has been omitted from all further illustrations of the widget configuration wizard). As illustrated at  1200 , the third state  1202 , labeled “Mid” is configured to transmit a parameter value of “67” upon activation of the relevant touch area, while as illustrated at  1220  the fourth state  1222  labeled “Full” is configured to transmit a parameter value of “255-On/Enable” upon activation of the relevant touch area. 
     Turning now to  FIG.  13   , upon activation of the “Status Feedback” tab  1104  of exemplary widget configuration wizard  1100 , an exemplary input screen  1300  may be displayed to permit configuration of the response of n-state widget  1008  to status feedback messages received from target appliances. As illustrated at  1300 , the state zero response, selected at  1302 , is invoked by an returned state value in the range bounded by the minimum/maximum values selected from drop down menus  1304  and  1306 . In this illustrative example, it can be seen that the minimum/maximum values are identical, i.e., this response, being the icon display of image  1308 , may only be invoked upon receipt of a returned status value of exactly zero, or off/disabled, from the target multilevel switch. As illustrated at  1320  however, it can be seen that the state three response selected at  1322  may be invoked by any returned status value in the range “50” through “90” to cause display  1328 . 
     In some embodiments, certain n-state widgets may be defined which do not include all the attributes described in the previous example, i.e., image, touch control output, status input, and status response. By way of illustration, an exemplary current temperature display widget of a thermostat control, such as  1018  in  FIG.  10   , may include only status input and image response functionality. Definition of the behavior of such a widget may be as illustrated in  FIG.  14   , noting that the setup wizard display in this instance lacks a “control” setup tab such as seen at  1102 , and presents only the “status” setup tab  1104 ′ since no control functionality is associated with this exemplary widget. With reference to the setup wizard displays of  FIG.  14   , the behavior of the exemplary temperature display widget has been defined at field  1404  to display the actual numeric value returned by the thermostat appliance when this value is in the range of “32” to “99” as defined at  1402 , and to display the text “Error”  1410  should the returned value be either higher  1408  or lower  1406  than these values, as illustrated  1412  in the case of the range of lower values. As will be appreciated, in order to maintain a current representation of the status value displayed, the implementation of such a widget in controlling device  100  may be required to poll the target appliance for an updated status from time to time. The configuration and operation of such a polling feature will be discussed in further detail hereafter. 
     Turning now to  FIG.  15   , by way of further illustration an exemplary second instance of a temperature display n-state widget  1502  may be placed on another page  1500  of the GUI page suite, associated with the same thermostat appliance, and defined 1504 in the same manner as described above, for example to serve as an informational display to permit a user of controlling device  100  to check current room temperature directly from an activities selection page  1500  as shown. In this example however, rather that a numerical value, the widget is defined to simply display “OK” if the reported temperature is in the range of “72” to “78” degrees. 
     As is apparent from the above, multiple n-state widgets may be defined to monitor and react to the same status of a target appliance. Accordingly, in some embodiments the required appliance polling functionality of controlling device  100  may be implemented as a single instance associated with the target appliance definition, and independent of the widgets which utilize the response data. In this manner a single polling sequence may retrieve the required status data on a periodic basis and cache the response value(s) for use as needed by particular widgets, e.g., when displayed, thereby minimizing overhead on the network or other communication link(s) used for appliance command and status messaging. In an exemplary embodiment, the polling parameters may thus be configured in GUI editor application  300  as a characteristic of the target appliance representation, and not as a characteristic of individual widgets. By way of example, clicking on an “edit device” icon  1016  in devices panel  912  may invoke an exemplary device properties configuration wizard  1600  for the current device, as illustrated in  FIG.  16   . Device configuration wizard  1600  may include a drop down menu  1602  from which an appropriate polling interval may be selected. As before, these parameters may be associated with a generic virtual device which is to be linked to an actual appliance only upon deployment of the GUI programming to a controlling device, for example controlling device  100 . 
     When a user of exemplary editor program  300  has completed creation and/or modification of a GUI configuration, the GUI configuration may be subsequently transferred to a controlling device  100  either via a physical connection (e.g., a cable  304 , a docking station, etc.) or via a wireless connection  306  (e.g., WiFi, Bluetooth, Z-wave, Zigbee, or any other suitable protocol), for example by clicking “Download project” tab  924 . Prior to downloading, editor program  300  may pre-process certain elements of the project file  310  data into a data structure  311  which may be in a format more suitable for direct use within controlling device  100 , as described in greater detail in previously referenced U.S. patent application Ser. No. 11/218,900. 
     As mentioned earlier, in certain self-configuring networks such as for example a Z-wave wireless mesh network for home control and automation based on components available from Zensys Inc., final appliance network addresses, etc., may only be determinable by a controlling device at the time that the controlling device is physically introduced into the network. Accordingly, in some embodiments a GUI configuration downloaded into an exemplary controlling device  100  may include generic virtual devices created as placeholders during the editing process. Turning now to  FIG.  17   , upon introduction of such an exemplary controlling device  100  into the network ecosystem in which it is to operate an initialization screen  1700  may be accessed to allow establishment of linkage(s) between virtual devices configured in the GUI programming of controlling device  100  and the physical network nodes which correspond to target controlled appliances in the ecosystem. In an exemplary embodiment, a user of controlling device  100  may be presented with touch icons  1704  activatable to initiate a link management wizard,  1702  activatable to initiate transfer of preexisting link assignments from another controlling device already present in the ecosystem, and  1706  to defer establishment of linkages to later time. As will be appreciated, if this latter alternative  1706  is selected any currently unlinked virtual devices will be non-functional until such future time as linkage is completed. Such non-operational status may be represented in the GUI pages of controlling device  100  by grayed-out or otherwise altered icons, error messages on entry to those pages or upon icon actuation, visible or audible warning upon icon actuation, etc., or any combination thereof as appropriate for a particular embodiment. 
     Upon activation of “Link” icon  1704 , in an exemplary embodiment a user may be presented with a display  1800  as illustrated in  FIG.  18   . (For brevity, only the screen contents and not the full outline of controlling device  100  are presented in this and subsequent illustrations.) Such a display may comprise an area  1802  in which may be presented a list of virtual devices present in the GUI configuration of controlling device  100  together with their current linked/unlinked status, together with an area  1804  in which may be presented a list of unlinked physical nodes present in the current ecosystem. The list of virtual devices presented in area  1802  may include indications  1806 , 1808  representative of the current linked ( 1806 ) or unlinked ( 1808 ) status of each virtual device, together with an indication  1820  of the associated physical appliance node for those virtual devices which are linked. In the example illustrated, it can thus be seen that the multilevel lighting virtual device, corresponding for example to GUI icon  1008  of  FIG.  10   , has been linked to physical node “4” of the current Z-wave ecosystem. Checkboxes  1810 ,  1811  and  1812  may be provided for user selection of individual items listed in the two areas. In order to link a virtual device to physical node, a user may touch one checkbox in each of the respective lists, for example  1811  and  1812 , followed by actuation of the “Link” icon  1814 . 
     Alternatively, to cancel an existing linkage a user may touch the checkbox associated with an already configured virtual device, for example checkbox  1810  corresponding to the link  1806 , followed by actuation of the “Break” icon  1816 . In confirmation of such an action, the linkage indicator  1806  may be changed to an “unlinked” symbol similar to that illustrated at  1808  and an entry corresponding to the newly-detached physical node “4” added to the list of available ecosystem nodes displayed in area  1804 . In some embodiments, a “Reset” icon  1822  may also be provided, actuation of which may break all existing links—to be used, for example, when relocating a controlling device to an entirely new environment. 
     Before a link between a virtual equivalent of an appliance and an intended target appliance is finalized for use within an operational configuration of the controlling device  100 , a user may be afforded an opportunity to ascertain if controlling device  100  is communicating with an intended target appliance or an appropriate appliance node either before or after a virtual device to physical node linkage is established. In an exemplary embodiment this may be achieved by selection of either an already-linked virtual device from the list in area  1802  (e.g., Multilevel Lighting node  1810 ) or selection of one unlinked item from each of areas  1802  and  1804  (e.g., Generic Thermostat  1811  and Z-wave ecosystem node “3”  1812 ), followed by actuation of “Test” icon  1818 . In the embodiment illustrated, this may result in display of a page  1850  which lists the features and status of the selected appliance (node “4”, Multilevel Lighting, in the illustrated case.) From this display, a user may ascertain the node ID  1864  and associated (or to be associated) virtual device  1862 , the type(s) of service  1854  available from this appliance node, and the current status of the appliance node  1870 . Further, the user may exercise the appliance by selecting a parameter value from drop-down table  1860  and actuating the “Set” icon  1858  to cause transmission of that value to the appliance node. Subsequently, the changed status of the appliance may be verified by actuation of the “Get” icon  1856  which may cause the status display  1870  to be updated by retrieval of a new value from the appliance node. By way of specific example, if multilevel lighting node “4” corresponded to dimmer outlet  114  of  FIG.  1   , then upon entry into the test the illustrated displayed status  1870  would indicate that lamp  110  was currently set to 60% of maximum brightness. If the illustrated parameter  1860  (“0”) were then to be transmitted to dimmer outlet  114  by actuation of the “Set” icon  1858 , lamp  110  should be observed to turn off and upon subsequent actuation of the “Get” icon  1856 , reported status  1870  should be observed to change to “0/Off”. 
     In the event that appliance services or responses are not as expected or desired, if an already-linked virtual device/appliance node pair was under test, the link may be immediately broken by actuation of “Break” icon  1868 . After completion of all desired testing, controlling device  100  may be returned to its previous state (i.e., screen  1800 ) by actuation of “Back” icon  1868 . 
     In the event that a similar or compatible controlling device has already been configured with a set of virtual device to physical device linkages appropriate for the current ecosystem, upon introducing an additional controlling device  100  into the environment a user may select the “synchronize” option  1702 , which mode may be used to transfer a copy of the exiting linkage assignments from the previously configured other controlling device to the newly-introduced controlling device. In order to accomplish this, both controlling devices may placed into the linkage initialization mode illustrated in  FIG.  17   , for example from a “settings” menu on the home pages of each, and the “Sync” icon  1702  actuated on both. With reference to  FIG.  19   , both controlling devices may then display an introductory screen  1900  comprising icons  1902 ,  1904  activatable to place one of the controlling devices into a mode for sending linkage data and the other controlling device into a mode for receiving linkage data. Upon actuation of the respective icons on the respective controlling devices, the controlling device placed into a send mode may display screen  1910  while the controlling device placed into receive mode may display screen  1920 . With reference to display  1910 , an exemplary sending controlling device may present a user prompt  1912  requesting initiation of the synchronization process by activating a “Sync” icon  1914 . Upon such initiation of the synchronization process, the sending controlling device may display a message  1916  requesting that the user activate the receive mode on another controlling device, and may thereafter begin polling a wireless local network (e.g., WiFi, Z-wave, Bluetooth, etc.) for a receive ready response from a like controlling device. With reference to display  1920 , an exemplary receiving controlling device may present a user prompt  1922  requesting initiation of reception by activating a “Receive” icon  1924 . Upon entering into the receive mode, the exemplary controlling device may begin to monitor a wireless local network for an enquiry from a like controlling device seeking to transfer linkage data. Upon detection of such a signal, an affirmative response may be issued by the receiving controlling device, after which data transfer may begin. During the transfer process, the receiving controlling device may display a status message  1926  indicating to the user that the transfer is in progress. Upon successful completion of the transfer, both controlling devices may display a completion message as illustrated by screen  1930 , together with an icon  1932  activatable to end the synchronization process and return each controlling device to its previous operational mode. 
     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 the embodiments presented above are described in the context of universal remote controls (i.e., controlling devices capable of commanding the operation of multiple classes of appliances devices from multiple manufacturers) as being most broadly representative of controlling devices in general, it will be appreciated that the teachings of this disclosure may be equally well applied to other controlling devices of narrower capability, and also to any general or specific purpose device requiring a visual interface (i.e., display screens, signage devices, teleprompters, etc.) without departing from the spirit and scope of the present invention. Still further, it will be appreciated that the user interfaces described herein need not be limited to controlling devices but can be utilized in connection with any device having input elements wherein it is desired to convey information concerning such input elements. For example, the user interface may be utilized with devices such as calculators, phones, appliances, etc. having input elements having associated information conveying images in the form of alphanumeric and/or symbolic labels. It will also be understood that modification, editing, or updating of configuration settings may be performed either by a user or though any automated computing processes as are well known in the art. As such, 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. 
     All documents cited within this application for patent are hereby incorporated by reference in their entirety.