WO2018042273A2 - Fully automatic programming of an enhanced universal remote control - Google Patents

Fully automatic programming of an enhanced universal remote control Download PDF

Info

Publication number
WO2018042273A2
WO2018042273A2 PCT/IB2017/054639 IB2017054639W WO2018042273A2 WO 2018042273 A2 WO2018042273 A2 WO 2018042273A2 IB 2017054639 W IB2017054639 W IB 2017054639W WO 2018042273 A2 WO2018042273 A2 WO 2018042273A2
Authority
WO
WIPO (PCT)
Prior art keywords
signal
command
remote control
universal remote
target
Prior art date
Application number
PCT/IB2017/054639
Other languages
French (fr)
Other versions
WO2018042273A3 (en
Inventor
Ilan Bauminger
Original Assignee
Ilan Bauminger
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ilan Bauminger filed Critical Ilan Bauminger
Publication of WO2018042273A2 publication Critical patent/WO2018042273A2/en
Publication of WO2018042273A3 publication Critical patent/WO2018042273A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/42204User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor
    • H04N21/42206User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor characterized by hardware details
    • H04N21/42225User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor characterized by hardware details characterized by types of remote control, e.g. universal remote control
    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C17/00Arrangements for transmitting signals characterised by the use of a wireless electrical link
    • G08C17/02Arrangements for transmitting signals characterised by the use of a wireless electrical link using a radio link
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/42204User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/42204User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor
    • H04N21/42226Reprogrammable remote control devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C2201/00Transmission systems of control signals via wireless link
    • G08C2201/20Binding and programming of remote control devices
    • G08C2201/21Programming remote control devices via third means
    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C2201/00Transmission systems of control signals via wireless link
    • G08C2201/50Receiving or transmitting feedback, e.g. replies, status updates, acknowledgements, from the controlled devices
    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C2201/00Transmission systems of control signals via wireless link
    • G08C2201/90Additional features
    • G08C2201/92Universal remote control

Definitions

  • the present disclosure relates to an apparatus and method for programming a universal remote control and, more particularly, to programming a universal remote control in a fully automated manner, without manual operation, using time-optimized techniques for detection of changes of output signals, signals which are generated by the to-be- controlled target devices.
  • a universal remote control needs to be customized to function with each of a user's particular devices, all of which will require a different remote control programming code to be programmed into the remote.
  • Customization of a universal remote control has generally been performed by having a look up table, in which a user manually looks up their particular device model, and then inputs several possible codes which correspond to that device, testing each code to find the correct one.
  • knowledge of the exact make and model of all of their devices can be cumbersome.
  • a common audio/video system may include many devices, such as a display screen from one manufacturer, a set of speakers from another manufacturer, with a Blu-Ray, DVD and set-top box all from different devices
  • the universal remote control is programmed to control a device by using a remote control programming code, with each code being programmed to control one of the devices.
  • a remote control programming code For example, to control a Model X 48" Television, the universal remote control may use the code number 29852 as a programming code, while a Model Y Blu- Ray Player may have the programming code number 05039.
  • Each code corresponds to a specific set of remote control signals which are programmed to control a given device. Once the universal remote control has been programmed with a certain remote control programming code, it will be capable of transmitting signals that the device will recognize, in order to control the device.
  • the learning universal remote control learns the signals of each command, by receiving those signals from the original remote control.
  • the remote control signals are specific signals that are received by a device, and instruct the device to perform a certain function. For example, when a power button is pressed in a remote, the device that is controlled by that remote receives the signal that has been transmitted from the remote, and interprets that signal to toggle the power of the device.
  • Each device, and original remote has a unique set of signals that are used to perform the various functions of the device. Some devices may have the same or similar control signals, for example, the mute signal of a first device will also be the mute signal of a second device. However, the devices will also have some unique signals, for example, the channel up signals will not be the same.
  • a remote control device may include: first circuitry to control a function of a first electronic device; second circuitry to be set to control a function of a second electronic device; and a setup controller to set the second circuitry to control a function of a target electronic device based on a code received from a separate device.
  • An electronic device to be controlled by a remote control device may include: an input device to receive a signal from the remote control device; an output device to send a signal to the remote control device; and a processor coupled to the input and output devices, and configured to access a database of codes and to selectively provide codes from the database to the remote control device, the codes configured to set circuitry of the remote control device to control a function of the electronic device and/or an auxiliary electronic device.
  • test codes are sent to the apparatus until the apparatus responds.
  • the test codes comprise tags that are sent along. The tags fall all within a same narrow frequency band.
  • An STB that is eavesdropping on the transmission is receptive to that band.
  • the STB identifies the last tag and enables a server to identify the complete set of codes for the apparatus based on the tag. Thereupon the set is downloaded and programmed in the remote.
  • US Patent No. 5819294(A) discloses a programmable remote controller is programmed by a PC that has an onboard data base for sets of codes used by a variety of commercially available remote controllers.
  • the data base contains sets of compressed codes.
  • the user lets the PC find a match between a single pulse-code transmitted by a specific known controller on the one hand and an item in the data base on the other hand.
  • the set containing the matching item is stored in the programmable controller as corresponding to the particular apparatus that is controllable via the specific remote.
  • US Published Application No. 2008174467 discloses an apparatus and method for programming a universal remote control. The method includes receiving a transmitted signal of unknown modulation technique from a native remote control and characterizing the received signal in parameters of a pre-determined modulation technique.
  • US Patent No. 7562128(B1) discloses a set top box (STB) is marketed together with a programmable remote. The remote has a dedicated button to connect the STB to a specific server on the Internet. The consumer can notify the server of his/her other CE equipment, which he/she desires to be controllable through the same remote as the one that came with the STB. The server downloads to the STB data representative of the relevant control codes. The STB is provided with means to program the remote with these codes. In return the server has obtained detailed and accurate information about this consumer's equipment. A reliable customer base can thus be built for streamlining Help Desk operations.
  • the invention disclosed herein may be embodied as a system and method for automatically, without human intervention, programming a universal remote control device based on general knowledge of target devices in the market place and their commands, time-optimized DB scanning techniques and signal-change-detection techniques of output signals generated by those target devices.
  • the entire system is based on an enhanced universal remote control and, optionally, additional external units.
  • a system for automatically programming at least one universal remote control comprising: at least one universal remote control device; at least one database storing data related to at least one target device type which may be controlled by said at least one universal remote control device and data required for automatically programming said at least one universal remote control device; at least one transmitter configured to transmit at least one command signal towards at least one target device; at least one signal change detector configured to automatically detect changes in output signals of said at least one target device; and a system control unit communicating with said at least one universal remote control device, said at least one transmitter and said at least one signal change detector, said system control unit connected with said at least one database, said system control unit configured to execute automatic programming of said at least one universal remote control device.
  • Each one of said at least one universal remote control device may be configured to operate in at least one operating mode.
  • Each one of said at least one universal remote control device may comprise, for each one of said at least one operating mode, mapping of buttons to command names.
  • Each one of said at least one universal remote control device may comprise, for each one of said at least one operating mode, mapping of soft buttons to buttons
  • the data stored in said at least one database may comprise target device codes and corresponding target device types, target device names, command names, command signals and command descriptions.
  • the data stored in said at least one database may comprises: at least one universal remote control device model ID; at least one operating mode corresponding to each one of said at least one universal remote control device model ID; at least one target device code; usage statistics of each target device code per geo location; and signal influencing commands comprising parameters required for detecting signal change.
  • the at least one database may further comprise data related to TV operators; said data related to TV operators describing each of said TV operator's channel lineups, comprising: channel name, channel description, channel logo channel category and popularity statistics of channel per geo location.
  • the system may further be configured to automatically program favorite channel buttons using said popularity statistics of channel per geo location and per TV operator.
  • the parameters may comprise: signal type, measured property, minimal change, time window size and counter command name.
  • At least one of said at least one database, system control unit, signal change detector, transmitter and at least one universal remote control device may be embodied as at least one application on a mobile computing device.
  • At least one of said at least one database, system control unit, signal change detector, transmitter and at least one universal remote control device may be embodied as at least one application on one of a home computing device, an office computing device and an industrial computing device.
  • At least one of said at least one database, system control unit, signal change detector and transmitter may be embodied as an integral part of said at least one universal remote control device.
  • At least one of said at least one database, system control unit, signal change detector and transmitter may be embodied as an integral part of one or more target devices.
  • At least one of said at least one database, system control unit, signal change detector, transmitter and at least one universal remote control device may be embodied as a stand-alone device.
  • the at least one database, system control unit, signal change detector, transmitter and at least one universal remote control device may be packaged in any packaging combination.
  • the at least one database may reside in one of a local storage unit and a remote storage unit.
  • the at least one universal remote control device may comprise a plurality of universal remote control devices and said system may be configured to automatically program in parallel said plurality of universal remote control devices.
  • Each one of said at least one universal remote control device may comprise a universal remote control model ID, a unique serial number and at least one set of logical elements, each set of logical elements configured to implement a given operating mode and to control one or more target device types, said at least one set of logical elements comprising at least one of: a plurality of commands comprising all the commands for implementing said given operating mode in said universal remote control model ID, each command associated with a command name and with a command signal; a plurality of buttons, each designated by a button ID; buttons command mapping configured to map said plurality of buttons to a plurality of command names and command signals, said buttons comprising soft buttons; a plurality of look and feel characteristics of said soft buttons; and buttons look and feel mapping configured to map each one of said soft buttons to said look and feel characteristics, wherein said universal remote control device is configured to receive said at least one set of logical element from said at least one database.
  • the commands may comprise basic commands and macro commands, said macro commands comprising a sequence of at least two basic commands.
  • the system control unit may comprise: a processor; control memory comprising runtime calculation data structures configured to be populated with data from said at least one database, said data relating to target devices; at least one command transmit interface configured to communicate between said processor and said at least one transmitter; at least one signal change detector interface configured to communicate between said processor and said at least one signal change detector; a database interface configured to retrieve data from said at least one database; at least one programming interface configured to send commands, command signals and look and feel data from said control memory to said at least one universal remote control device; at least one indicator interface configured to indicate the status of ongoing programming of said at least one universal remote control device; and a geo location module.
  • the system control unit may further comprise internet connection means.
  • Each one of said at least one signal change detector may comprise: change detector memory; a signal receiver configured to receive said output signals from said at least one target device; a signal recorder configured to receive said output signals from said signal receiver and record them in said change detector memory; a signal analyzer configured to analyze said received output signals according to predefined parameters; a detector control unit configured to control operation of said signal receiver, said signal recorder and said signal analyzer; and a system control interface configured to communicate between the signal change detector and said system control unit.
  • the predefined parameters may comprise measured property, minimal change and time window size.
  • the data required for automatically programming said at least one universal remote control device may comprise data related to one or more operating modes and one or more target device types.
  • the at least one target device type may comprise at least one of the group consisting of: TV, Display, Projector, Set-Top-Box (STB), Streamer, Speakers, Amplifiers, Radios, Air-Conditions, Fans, Lights, Shades, Cameras and Smart Home devices.
  • the data stored in said at least one database may comprise a streaming and web sites table.
  • the data stored in said at least one database may comprise a remote customization table.
  • the automatic programming may be configured to be done without human intervention.
  • the at least one universal remote control device may comprise a plurality of universal remote control devices and at least one of said plurality of universal remote control devices may have a model ID different than the model ID of the other universal remote control devices in said plurality.
  • a method of automatically programming a universal remote control device comprising: transmitting at least one basic command signal toward at least one target device to be controlled by said universal remote control device, said at least one basic command signal configured to modify the state of said target device; detecting at least one change in said at least one target device's at least one output signal in response to said sent at least one basic command signal; and programming said at least one command in said universal remote control device for controlling said at least one target device.
  • the method may further comprise obtaining at least one operating mode of said universal remote control, wherein said at least one target device comprises a target device type; said at least one basic command signal belongs to one signal influencing command for said target device type; and said programming comprises programming said at least one command for said universal remote control device for controlling said at least one target device.
  • Transmitting at least one basic command signal may comprise transmitting in a calculated order configured to minimize said programming time.
  • Detecting changes may comprise identifying the basic command signal that caused said changes.
  • the method may further comprise obtaining look & feel buttons data for said
  • the at least one target device and said at least one basic command signal may be selected from a database.
  • the automatic programming may be done without human intervention.
  • the at least one signal influencing command may be selected from a database, based on a calculated order configured to minimize said programming time.
  • the method may further comprise calculating an order of said signal influencing commands using cost related with executing each one of said signal influencing commands
  • the at least one basic command signal order may be calculated during said
  • the at least one signal influencing command order may be calculated during said programming. Calculating may comprise using data related to the popularity of devices of said target device type in a geo-location associated with said universal remote control device.
  • the cost may comprise average time to resolve each one of said signal influencing commands.
  • the order may comprise executing signal influencing commands with lower cost first.
  • the at least one command signal order may comprise first executing command signals with higher popularity in said geo-location.
  • a database for use with a system comprising an automatically programmable remote control device, said database storing data related to at least one target device type which may be controlled by least one universal remote control device and data required for
  • the database may further comprise data related to TV operators; said data related to TV operators describing each of said TV operator's channel lineups, comprising:
  • channel name channel name, channel description, channel logo channel category and popularity statistics of channel per geo location.
  • the parameters may comprise: signal type, measured property, minimal change, time window size and counter command name.
  • the database may further comprise data related to streaming and web sites,
  • the database may further comprise data related to customization of said remote control device, comprising: remote ID, customized field and customization data.
  • Fig. 1 is a schematic block diagram of an exemplary system for automatic programming of universal remote control according to embodiments of the present invention
  • Fig. 2 is a view of the logical elements of The-Remote required for operating in a single Operating-Mode, according to embodiments of the present invention
  • Flg.3 is an exemplary flowchart of the High Level Algorithm performed by the system according to embodiments of the present invention.
  • Fig. 4 is a flowchart showing one embodiment of a Signals Matching Algorithm for identifying commands required for controlling a single Target-Device operating in all its relevant Operating-Modes of the current Remote-Model-ID, according to embodiments of the present invention
  • Fig. 5 is a block diagram of components of the System-Control according to
  • FIG. 6 is a block diagram of components of a Signal-Change-Detector according to embodiments of the present invention.
  • the present invention provides an automatic, hands-free, system and method of programming a universal remote control, using detection of changes in Output-Signal (sound or picture or light or temperature or other signal, see definitions) of Target- Devices.
  • Target-Device-Type A group of devices with similar functionalities (e.g. TV, Display, Projector, STB, Streamer, Speakers, Amplifiers, Radios, Air-Conditions, Fans, Lights, Shades, Cameras, Smart Home devices, etc.) which may be controlled by a universal remote control.
  • devices with similar functionalities e.g. TV, Display, Projector, STB, Streamer, Speakers, Amplifiers, Radios, Air-Conditions, Fans, Lights, Shades, Cameras, Smart Home devices, etc.
  • Target-Device A specific device which belongs to a single Target-Device-Type (e.g. Sony-XBR55X850D, LG-LW1016ER).
  • ControM An element of a universal remote control with which the user interacts in order to control Target-Devices, by transmitting one or more Command-Signals configured to modify the state of the Target-Devices.
  • Soft-Button A ControM which may be presented to the user by one or more alternative LOOK & FEEL capabilities, as configured by the system.
  • Button A soft Control 1 or Soft-Button (e.g. as common in touch screen devices) or a physical Control 1 or Physical-Button (e.g. buttons of a traditional remote control) or a combined soft-and-physical Contrail , or any other Contrail . Designated by a Button-ID.
  • Buttons-Commands-Mapping Mapping of Buttons to Commands (basic or macro), which their signals will be transmitted once the button is activated.
  • Buttons-L&F-Mapping Look and Feel properties which may be linked to a Soft-Button, e.g. size, texts, logos, press & release feel parameters, sounds, colors, lights sequence, vibration sequence.
  • this may be especially useful for indicating settings of Favorite Channels (e.g. of TV, Internet, Radio).
  • Favorite Channels e.g. of TV, Internet, Radio.
  • Buttons-L&F-Mapping or L&F- Characteristics, or L&F-Data, or Button-Characteristics should be read as relating to Soft-Buttons only.
  • Basic-Command A message generated by a transmitter and received by the Target- Device, which is intended to modify the state of the Target-Device (e.g. Mute message).
  • a Macro-Command is a sequence of at least two Basic-Commands, interleaved with Timeout-Commands (e.g. close-shades-open-TV-channel-78, where a user operation will cause two different Target-Devices to operate, or Single-Button- Press-Tuning, where a user operation will cause the Target-Device to tune to a well- defined, set-in-advance, TV channel 78).
  • Timeout-Commands e.g. close-shades-open-TV-channel-78, where a user operation will cause two different Target-Devices to operate, or Single-Button- Press-Tuning, where a user operation will cause the Target-Device to tune to a well- defined, set-in-advance, TV channel 78).
  • buttons By use of macro commands the system supports automatic programming of buttons to tune to favorite web sites, favorite streaming sites and favorite TV channels, by a single button press.
  • Favorite-Channel-Button In the context of A/V/Web Target-Devices, a Button which has been mapped to a Basic or Macro (most cases) Command; once activated, this Button will cause the Target-Device to tune to a desired channel, or web site, or streaming site.
  • the System may be configured to automatically program Favorite-Channel-Buttons, which will enable tuning by a single button press to the user's most likely to be desired TV channel or web site or streaming site.
  • Command-Name A Basic-Command or a Macro-Command, with a link to the relevant Command-Signal.
  • Command-Signal A sequence of IR or RF or Wi-Fi, or any other form of wireless signals, implementing a Command-Name.
  • Counter-Command-Name A Command-Name which has an opposite effect to that of another Command-Name, e.g. Mute and Un-Mute, Pause and Play, Set-Lights-for- Coming-Home and Set-Lights-for-Leaving-Home.
  • Target-Set-of-Commands-and-Signals A full set of basic Command-Names and related Command-Signals which control a specific Target-Device.
  • Target-Device-Code A code describing a group of Target-Devices which share the same Target-Set-of-Commands-and-Signals, or, where Target-Set-of-Commands-and- Signals of one group member are a subset of the Target-Set-of-Commands-and-Signals of another group member.
  • Operating-Mode A remote control mode of operation, where the remote control controls one or more Target-Device-Types, each device controlled by a subset of its Target-Set-of-Commands-and-Signals.
  • a remote control may have one or more Operating-Modes.
  • Each Operating-Mode has its own Look & Feel characteristics (Buttons-L&F-Mappings), which are useful for the User to interact with.
  • Each Operating-Mode has its own Commands and related Buttons (Buttons- Commands-Mapping), which define the function of each Button while using the remote in this Operating-Mode.
  • Each Operating-Mode may enable control of one or more Target-Device-Types.
  • Each Operating-Mode has a single Operating-Mode-Required-Commands-Set-ID (defined below), which may control multiple Target-Devices.
  • Each Operating-Mode may enable control of not more than one Target-Device (e.g. specific TV model) belonging to a Target-Device-Type (e.g. TV type).
  • Target-Device-Type e.g. TV type
  • a single remote control may control multiple Target-Devices belonging to a specific Target-Device-Type (e.g. a few different TV models), as long as controlling of each such device is done by use of a different Operating-Mode.
  • a specific Target-Device-Type e.g. a few different TV models
  • the system When connecting an already programmed remote to the system, the system will duplicate all the remote Operating-Modes, assigning each of them with a new name, and program the newly named Operating-Modes while not modifying the old Operating- Modes (e.g. programming the remote to control also the bed room TV model, while previously it controlled only the living room TV model).
  • Operating-Mode-Required-Commands-Set A set of Command-Names required by a specific Operating-Mode of a specific Remote-Model-ID, where each Command-Name relates to a specific Target-Device-Type (command is a Basic- or Macro-Command) or to multiple Target-Devices-Types (command must be a Macro-Command), where the Command-Names are related to Ul (User Interface) characteristics (via the relevant Buttons-L&F-Mapping).
  • the set of Command-Names also includes all the Basic-Commands used by the relevant Macro-Commands.
  • Remote-Required-Target-Device-Type-Commands All Command-Names of Target- Device-Type which are included in any of the Operating-Mode-Required-Commands- Sets of a Remote-Model-ID.
  • This group includes also Basic-Commands relevant to the Target-Device-Type, used by Macro-Commands of the Remote-Model-ID.
  • Advanced-Universal-Remote-Control An enhanced universal remote control which is programmed automatically, without human intervention, with capabilities beyond those of a standard universal remote control, e.g.:
  • a) It may operate in one or more Operating-Modes.
  • Remote-Model-ID i.e. model identification code
  • Remote-Model-ID An ID indicating a specific type of an Advanced-Universal-Remote- Control.
  • The-Remote An instance of an Advanced-Universal-Remote-Control.
  • Output-Signal A signal (e.g. Audio, Sound, Noise, Video, Picture, Lights, Temperature, Humidity, Smell, Magnetic Field, Electrical Field, Infra-Red, RF, Wi-Fi) that is generated by a Target-Device.
  • a signal e.g. Audio, Sound, Noise, Video, Picture, Lights, Temperature, Humidity, Smell, Magnetic Field, Electrical Field, Infra-Red, RF, Wi-Fi
  • Signal-lnfluencing-Command Command-Signal generated by The-Remote which causes a change in Output-Signal of a Target-Device.
  • Each such command is not necessarily included in any group of Remote-Required- Target-Device-Type-Commands relating to the Target-Device.
  • Detect-Change-Message A message sent from System-Control to Signal-Change- Detector, requesting that Output-Signal should be monitored for a change which is relevant to this message parameters; and that once such a change is identified, this should be reported back to System-Control.
  • Change-Detected-Message A message sent from Signal-Change-Detector to System- Control, indicating that a signal change has been detected.
  • Fig. 1 is a schematic block diagram of an exemplary system 20 for automatic
  • System-Control unit 22 A computing unit which, based on DB1 , DB2, communication means with the Transmitter and The-Remote, and communication means with the Signal-Change-Detector, is capable of executing the described The-Remote automatic programming process.
  • Database DB1 24 - A database of Target-Device-Codes with their corresponding Target-Device-Types (e.g. TVs, STBs, Smart Home Appliances), Target-Device-Names (e.g. Sony-XBR55X850D, LG-LW1016ER, GE-AJEM12DCF), Command-Names, Command-Signals, Command-descriptions (all Target-Set-of-Commands-and-Signals) and definitions of related Macro-Commands. This data is commonly used for the sake of programming off-the-shelf universal remote controls.
  • Target-Device-Types e.g. TVs, STBs, Smart Home Appliances
  • Target-Device-Names e.g. Sony-XBR55X850D, LG-LW1016ER, GE-AJEM12DCF
  • Command-Names e.g. Sony-XBR55X850D, LG-LW1016ER, GE-AJEM12D
  • Database DB2 26 - A database which includes information required in order to fully automatically program an Advanced-Universal-Remote-Control.
  • DB2 26 is linked to data in DB1 24 by the Target-Device-Type, Target-Device-Codes, and Command-Names fields.
  • DB226 comprises:
  • Target-Device-Codes including usage statistics of each Target-Device-Code per Geo-Location.
  • TV Operators e.g. DirecTV, EchoStar, Sky
  • each with its respective channel lineups including information about each of the channels, such as name, description, logo, category, popularity statistics per Geo-Location.
  • Web sites which may be accessed by a specific macro-command. This could be done by spelling the web site name using signals of an I R keyboard, or by navigating on a virtual keyboard (e.g. ⁇ Right> ⁇ Right> ⁇ Down> ⁇ Enter> for the letter S).
  • databases DB1 and DB2 are only defined by their contents, which may alternatively be stored in a single database or in more than two databases.
  • Signal-Change-Detector 28 A signal monitoring component which detects changes in the Output-Signal 42 that is generated by a Target-Device 38.
  • the Signal-Change-Detector's functionality may be divided between a signal detection unit and the System-Control that receives the detected signal and performs the required calculations for detecting signal change.
  • The-Remote 32 An instance of an Advanced-Universal-Remote-Control according to the present invention.
  • Transmitter 36 for transmitting Command-Signals 34 initiated by System-Control 22 towards the Target-Devices 38 for modifying the state of the Target-Devices.
  • Target-Devices 38 - Specific devices which may be controlled by a universal remote control.
  • Each Target-Device belongs to a single Target-Device-Type (e.g. both Sony- XBR55X850D, LG-LW1016ER belong to type TV).
  • one or more of DB1 24, DB2 26, System-Control unit 22, Signal-Change-Detector 28, Transmitter 36 and The-Remote 32 may be embodied as an Application or Applications on a mobile computing device (e.g. smartphone).
  • one or more of DB1 24, DB2 26, System-Control unit 22, Signal-Change-Detector 28, Transmitter 36 and The-Remote 32 may be embodied as an Application or Applications on a home or office or industrial computing device (e.g. PC, laptop).
  • one or more of DB1 24, DB2 26, System-Control unit 22, Signal-Change-Detector 28 and Transmitter 36 may be embodied as an integral part of The-Remote 32.
  • one or more of DB1 24, DB2 26, System-Control unit 22, Signal-Change-Detector 28 and Transmitter 36 may be embodied as an integral part of one or more Target-Devices 38.
  • one or more of DB1 24, DB2 26, System-Control unit 22, Signal-Change-Detector 28, Transmitter 36 and The-Remote 32 may be embodied as a stand-alone device. According to embodiments of the present invention, one or more of DB1 24, DB2 26, System-Control unit 22, Signal-Change-Detector 28, Transmitter 36 and The-Remote 32 may be packaged all together in single package, each in a separate package, or in any other packaging combination. According to embodiments of the present invention, DB1 24 and DB2 26 may each reside in a different unit, or both in the same unit, in local or remote storage unit or units.
  • the System 20 is capable of automatically programming in parallel multiple instances of The-Remote 32, where each instance may be of a different type (each type identified by Remote-Model-ID), where each instance is capable of controlling multiple Target- Devices 38, where each Target-Devices 38 may operate in multiple Operating-Modes.
  • a single System-Control 22 may interface with multiple Transmitters 36 based on the type of signals expected by different Target-Devices 38, multiple Signal-Change-Detector 28 based on the different Output-Signals 42 generated by the Target-Devices 38, and multiple The-Remotes 32 based on the number of parallel programming operations done by a single System- Control 22 (e.g. a factory setting may desire to program multiple The-Remotes 32 in parallel).
  • Fig. 2 is a view of logical elements of The-Remote 32, required for controlling all Target- Devices relevant to a single Operating-Mode, according to embodiments of the present invention. These logical elements are assigned values from DB1 24 and DB2 26 as an outcome of the automatic programming process.
  • The-Remote-ID 40 An ID comprising a Remote-Model-ID and a unique serial number which is assigned to each specific Advanced-Universal-Remote-Control (Remote-Model-ID guarantees that each remote will be programmed automatically with its appropriate commands and buttons, which are retrieved from DB1 and DB2).
  • Buttons 41 Each Button is designated by a Button-ID. Buttons-Commands-Mapping 42: mapping Buttons to Command-Names. Commands 43 of Operating-Mode-Required-Commands-Set:
  • Buttons-L&F-Mapping 44 Mapping of (or linking) Buttons 41 to Look and Feel properties (L&F-Characteristics 45). Each Button-L&F-Mapping is designated by a Buttons-L&F-Mapping-ID.
  • L&F-Characteristics 45 Look and Feel properties of a Button, e.g. size, texts, fonts, logos, press & release feel parameters, sounds, colors, lights sequence, vibration sequence.
  • The-Remote-ID 40 which is provided to the system 20 by The-Remote 32, all required data elements (and related Commands, Signals, Buttons, L&F- Characteristics and Mappings) are forwarded from DB1 and DB2 to The-Remote 32, so that a user may comfortably use The-Remote 32.
  • Candidate-Devices A transient list of Target-Device-Codes (marked with Y in
  • Relevant-Target-Device-Code data structure of the Calculation-Data-Structures), where one of them will be identified as matching the specific Target-Device desired to be controlled, once the programming process stage is completed successfully.
  • Calculation-Data-Structures Runtime data structures which are repeatedly populated from DB1 and DB2 and are used by the algorithms of Fig.3 and Fig. 4. These data structures are helpful in setting the order in which Signal-lnfluencing-Commands are being used, and the order in which their relevant Command-Signals are being exercised, in order to automatically program The-Remote 32 as quickly as possible.
  • DB1 and DB2 are databases populated in advance of any automatic programming operation.
  • Calculation-Data-Structures are runtime data structures which are repeatedly populated during the automatic programming of each The-Remote 32. Population is done per each Target-Device-Type which The-Remote 32 attempts to control.
  • Calculation-Data-Structures are populated with data about all Target-Devices of Target-Device-Type; this is done based on the Remote-Model-ID to be programmed, and on information from DB1 and DB2 (e.g. statistics regarding popularity of Target Devices in the Geo-Location of The-Remote being programmed).
  • the programming process is based on cycles of tests until test success is achieved, where test success is determined when a command which controls the device is identified.
  • test success is determined when a command which controls the device is identified.
  • the algorithm marks as irrelevant (with N) the related (those using the same failed command signal) target devices (designated by Target- Device-Codes in the Calculation-Data-Structures).
  • the algorithm marks as relevant (with Y) the related target devices, and marks as irrelevant (with N) the non-related target devices (those using a different command signal).
  • the algorithm attempts to come to conclusions as fast as possible; this is done by executing, on average, the minimal number of tests. This is achieved by ordering the tests so that tests which are more likely to succeed are executed first.
  • the likelihood of a test to succeed is determined by the popularity of related Target-Devices in the relevant Geo-Location.
  • the testing order of different signals is determined by going over all potential Target- Devices, all relevant Signal-lnfluencing-Commands, and all related Command-Signals. Selecting and ordering Target-Devices is defined by the remote type (Remote-Model- ID) being programmed.
  • Target-Device-Type e.g. TV
  • DB2 Target-Device- Type
  • Selecting and ordering Command-Signals being tested is defined, as explained above, by the popularity of the still relevant Command-Signals (based on popularity of still relevant Target-Device-Codes) in the relevant Geo-Location. This is also explained in detail while reviewing the Command-Signals data structure below.
  • Fig. 3 is an exemplary flowchart 300 of the High Level Algorithm performed by the system 20.
  • the flowchart describes the automatic programming of The-Remote 32, by performing an iterative process, of going over all Target-Device-Types of each of the Operating-Modes used by the Remote-Model-ID of The-Remote 32, which is being programmed for operation at a current Geo-Location (Geo-Location-ID).
  • the High Level Algorithm described in conjunction with Fig.3 attempts to resolve all Operating-Mode-Required-Commands- Set-IDs of all Operating-Modes, by invoking the process described in Fig.
  • this High Level Algorithm invokes the Signal Matching Algorithm described in conjunction with Fig. 4, in order to identify the signals required by The-Remote 32 to control one of the Target-Devices 38.
  • the automatic programming algorithm starts in step 305 by confirming that all units i.e. Target-Devices 38, System-Control 22, Transmitter 36, Signal-Change-Detector 28 and The-remote 32 are turned on; and requesting that Target-Devices Output-Signals (e.g. Audio, Temperature) be left at regular operating level.
  • System-Control 22 and The-Remote 32 (which is to be programmed) communicate and identify they are at start-of-programming, and both may indicate it (e.g. to a bystander) by activating an Indicator (e.g. a color light, a sequence of lights, a sound, a display), and in their respective memories.
  • an Indicator e.g. a color light, a sequence of lights, a sound, a display
  • step 310 the first (current) Operating-Mode is set and in step 315 the Operating- Mode-Required-Commands-Set for the current Operating-Mode is set.
  • step 320 the current Target-Device-Type for the current Operating-Mode is set (from DB2 26) and in step 325 the Calculation-Data-Structures are initialized for the current Target-Device-Type to include all relevant (e.g. based on Geo-Location statistics, type of device, etc.) Target-Device-Codes from DB1 24 and DB2 26, as will be explained in detail below.
  • step 328 the Signal Matching algorithm for the Target-Device-Type is performed by the algorithm of Fig. 4, as will be explained in detail below.
  • step 330 if all Operating-Mode-Required-Commands-Sets for the current Remote- Model-ID have been resolved, the fully automatic programming of The-Remote has been completed (step 335).
  • System-Control 22 and The-Remote 32 may indicate (e.g. to a bystander) end of programming, by modifying the initially set user indicators (e.g. a color light, a sequence of lights, a sound, a display message).
  • the system confirms that all Operating-Mode-Required-Commands-Sets with related Signals and L&F data were received by The-Remote 32 (step 337).
  • step 360 in case all iterations have been completed, i.e. there are no more
  • Fig. 4 is a flowchart 400 showing one embodiment of a Signal Matching Algorithm for all Signal-lnfluencing-Commands of a single Target-Device-Type, according to the present invention. Use of this algorithm enables System 20 of Fig. 1 to automatically program The-Remote 32.
  • System-Control 22 initializes Signal-Change-Detector 28 to monitor Output-Signal 42 and report upon detection of change, while instructing the Transmitter 36 to transmit Command-Signals 34, according to an execution-time optimized order.
  • Calculation-Data-Structures as matching the current Signal-lnfluencing-Command.
  • Candidate-Devices list of the Calculation-Data-Structures is trimmed down, so as to include only Relevant-Target-Device-Codes that use the last transmitted Command- Signal.
  • System- Control 22 compiles a message including available (resolved so far) Operating-Mode- Required-Commands-Sets, Buttons-Command-Mappings and Buttons-L&F-Mappings, and forwards it to The-Remote 32, which follows with its internal programming accordingly.
  • step 405 the initial order of Command-Signals for each Signal-lnfluencing-Command is calculated, and in step 410 the order of Signal-lnfluencing-Commands is calculated, and the first Signal-lnfluencing-Command is set to be worked with. Both of the above calculations are done by use of the Calculation-Data-Structures, as will be explained in detail below.
  • step 415 the Signal-Change-Detector 28 is initialized by System-Control 22 and in step 420 the algorithm sets a current Command-Signal for the Signal-lnfluencing- Command from DB1.
  • step 425 the current Command-Signal of the Signal-lnfluencing-Command is transmitted to the Target-Device by the Transmitter 36.
  • Signal-Change-Detector 28 monitors Output-Signals 42 from the Target-Device (step 430) and if no change has been detected, the algorithm checks whether additional Command-Signals remain be tested (step 435) and loops back to step 420 if affirmative to test the next Command-Signal. Otherwise, the algorithm checks whether additional Signal-lnfluencing-Commands remain to be tested (step 440) and if affirmative, loops back to step 415, with the next Signal-lnfluencing-Command that differentiates, i.e. uses different Command-Signals for the remaining Candidate-Devices.
  • the algorithm will progress and try the next-in-order Signal-lnfluencing-command.
  • step 430 If in step 430 a change has been detected in the Target-Device's Output-Signal, the algorithm tries to identify and verify the matching Command-Signal (step 450).
  • Identifying the matching Command-Signal is required since a number of different Command-Signals may be transmitted to the Target-Device in a short period of time in order to reduce operation time.
  • the identification is done by comparing the exact time of transmission of each Command-Signal with the exact time of Output-Signal change identification. Verifying the matching Command-Signal is required in order to confirm that the Command-Signal identified as matching is truly the Command-Signal that caused the change in the Target-Device's Output-Signal. This is done by exercising the identified Command-Signal and the signal of the Counter-Command-Name in a slow and careful way, and verifying that we truly found the influencing Command-Signal.
  • the system may wrongly assume that the Command-Signal used during this silence period caused the TV to MUTE.
  • the verification process may identify that actually the Command-Signal does not have any influence on the TV. If the process of verifying and identifying the matching Command-Signal is successful, the resolved Command-Signal is recorded as matching the current Signal-lnfluencing- Command (step 455).
  • the Candidate-Device field is set to N for all Relevant- Target-Device-Codes NOT using the verified Command-Signal (in the Calculation-Data- Structures: Relevant-Target-Device-Codes data structure).
  • Step 465) the Target-Device-Type is recorded as "Success" (step 470)
  • the Operating-Mode-Required-Commands-Sets with related Signals and L&F data are sent to The-Remote 32 (step 475) for programming and the execution flow returns to the High Level Algorithm of Fig. 3 in order to continue resolving signals for other Target- Device-Types and other Operating-Mode-Required-Commands-Sets (i.e. other
  • step 465 if in step 465 not all of the Remote-Required-Target-Device-Type- Commands for the Current Target-Device have been identified, the algorithm loops back to step 440, and continues to search for a Command-Signal used by the Target- Device for the next Signal-lnfluencing-Command.
  • step 450 the algorithm loops back to step 435.
  • step 440 If in step 440 it has been determined that all the Signal-lnfluencing-Commands have been tested, failure is recorded for this Target-Device-Type, and the execution flow returns to the Hi Level Algorithm of Fig. 3 in order to continue resolving signals for other Target-Device-Types and other Operating-Mode-Required-Commands-Sets (i.e. other Operating-Modes).
  • Fig. 5 is a block diagram of one embodiment of components of the System-Control 22.
  • i/f stands for Interface
  • Tx stands for Transmit
  • RC stands for remote-control.
  • System-Control 22 comprises Command-Tx i f 510, Signal Change Detector i f 520, RC Programming i/f 530, Indicator i/f 540, Databases i/f 550, Processor 560 and Memory 570. Part of the Memory is used for the Calculation-Data-Structures 580.
  • System- Control 22 additionally comprises Global-Positioning module 590, such as GPS (Global Positioning System) or IP Address-to-Geo-Location, e.g. IP Find (www.ipfind.co).
  • Internet-Connection module 595 accessed via Internet-Connection module 595.
  • the Processor 560 Upon start of operation (power on), the Processor 560 checks via the RC Programming i/f 530 whether The-Remote 32 is available and interested in being programmed. Upon confirmation, the Processor 560 may use the Indicator i/f 540 to turn on the Indicator; this indicates to a bystander that programming is in progress.
  • the Processor 560 retrieves information from DB1 24 and DB2 26 as required by the algorithms of FIGs.3 and 4, and stores all or some of this information in memory (e.g. for populating the Calculation-Data-Structures).
  • the Processor 560 using Signal Change Detector i/f 520, requests Signal-Change- Detector 28 to start looking for changes in the Output-Signal 42 (e.g. sound, light, temperature), based on parameters (stored in DB2) such as Signal-Type, Measured- Property, Minimal-Change, Time-Window-Size, and others.
  • the Processor 560 requests the Transmitter 36 to transmit Command- Signals, as described in conjunction with Fig. 4.
  • the Processor 560 using the Command-Tx i/f 510, instructs Transmitter 36 to stop transmitting the Command-Signals.
  • Processor 560 instructs Transmitter 36 and Signal-Change-Detector 28, via the corresponding interfaces, to verify (step 450) the detection (e.g. by repeating a few times transmission of the Command-Signal just used, and their Counter-Command-Name signals, and verifying identification of change). Once verification succeeds, Processor 560 records in Memory 570 the verified
  • Command-Signal 34 as implementing the current Signal-lnfluencing-Command.
  • Processor 560 manages and updates the Calculation-Data-Structures 580 and the Candidate-Devices list, as described in conjunction with Fig. 4. Once Remote-Required-Target-Device-Type-Commands for current Target-Device- Type have been identified (e.g. a single Target-Device-Code in the Candidate-Devices list), Processor 560 sends from Memory the Remote-Required-Target-Device-Type- Commands with related Signals and L&F data, via the RC Programming i/f 530, to The- Remote 32.
  • Processor 560 using the Indicator i/f 540, may order to indicate "completed successfully" (e.g. to a bystander).
  • a single System-Control 22 may be used for programming a plurality of The-Remote 32, optionally of different Remote-Model-IDs, using a plurality of Transmitters 36 and a plurality of Signal-Change-Detectors 28, whereby the System-Control 22 may comprise a respective plurality of command-Tx interfaces 510, a plurality of signal change detector interfaces 520, a plurality of programming interfaces 530 and a plurality of indicator interfaces 540.
  • Fig. 6 is a block diagram of one embodiment of components of a Signal-Change- Detector 28. Other different implementations may be integrated with The-System 20.
  • Signal-Change-Detector 28 will monitor for the change and once identified, will report the change event back to System-Control 22.
  • Signal-Change- Detector 28 comprises Signal Receiver 610, Signal Recorder 620, Signal Analyzer 630, Detector Control Unit 640, System-Control i/f 650, and Memory 660.
  • the Detector Control Unit 640 Upon reception of Detect-Change-Message from System-Control 22 via the System- Control i/f 650, the Detector Control Unit 640 stores in Memory 660 the parameters of the request, i.e. Signal-Type, Measured-Property, Minimal-Change, Time-Window-Size, and others. See parameters described above.
  • Detector Control Unit 640 instructs Signal Recorder 620 to start recording signals that are expected from Signal Receiver 610.
  • Detector Control Unit 640 instructs Signal Analyzer 630 to expect a Recording- Available-Message from Signal Recorder 620, and to analyze the recorded signals according to the parameters Measured-Property, Minimal-Change and Time-Window- Size.
  • Signal Detector Control Unit 640 instructs Signal Receiver 610 to start detecting signals of type Signal-Type (parameter) and forward them to Signal Recorder.
  • signal analysis comprises measuring the Measured-Property, calculating the average within Time-Window-Size, comparing to the value of the previous period, and reporting in case of a change larger than Minimal-Change.
  • Signal-Change-Detector 28 continues working (receiving, recording, analyzing signals) until Signal Analyzer detects a change.
  • Detector Control Unit 640 is informed of the change, Detector Control Unit 640 forwards a Change-Detected- Message to System-Control 22 via System Control i/f 650 and stops operation of Signal Receiver 610, Signal Recorder 620 and Signal Analyzer 630.
  • DB1 is similar to other IR or RF universal remote control databases. It is commonly used for programming standard universal remote controls.
  • Target-Device-Type e.g. TVs, STBs, Air-Conditions, other Smart Home
  • Target-Device-Codes-Table (implementing Target-Set-of-Commands-and-Signals) Target-Device-Code (compound kev1). (compound kev2) Command-Name (compound kev1)
  • Macro-Commands-Table Macro-Command-Name ( compound kevh Basic-Command-Order (compound kev1) (e.g. 1 , 2, 3) Target-Device-Type
  • Delay-Device is the name of a fake Target-Device-Type used to assist in designating timeout commands which are used by Macro-Command-Names.
  • the Basic-Command-Names in the format of Tabc (e.g. T200, T500) designate timeout commands (e.g. of 200ms, 500ms respectively).
  • DB2 is a database which includes information required in order to fully automatically program an Advanced-Universal-Remote-Control.
  • Target-Device-Type Target-Device-Type
  • Target-Device-Codes Command-Names fields.
  • All fields in DB2 are populated based on information which is publicly available (e.g. PayTV operators sites, Nielson publications), or defined by the System Operator, or forwarded by the User of The-Remote (see Remote-Customizations below).
  • Buttons-Commands-Mapping-ID ( compound kev1)
  • Target-Device-Code compound kevh
  • Target-Device-Type (compound kev1)
  • Channel-lineup-in-Geo-Location (ordered list of ⁇ Channel-ID, Channel-Number ⁇ ) Channels-Table
  • Geo-Location-ID (key) Coordinates-Defining-Geo-Location Geo-Location-description Streaming and Web Sites-Table Site-ID (key) URL (key)
  • Runtime Calculation-Data-Structures Following is a description of one embodiment of Calculation-Data-Structures (runtime data structures), which are helpful in resolving the Operating-Mode-Required- Commands-Sets of The-Remote, for controlling a single Target-Device of Target- Device-Type.
  • the use of the Calculation-Data-Structures is initialized when moving to the next required Target-Device-Type (See Fig. 4 of drawings).
  • Relevant-Target-Device-Codes data structure Relevant-Target-Device-Code (key) (e.g. all TV models which initially are in the
  • Geo-availability % popularity of this Target-Device-Code, e.g. the number of TV models in the Geo-Location of the currently programmed remote.
  • Command-Test-Order (key) (The ordinal place of this Signal-lnfluencing- Command in the testing order, e.g. 1 , 2, etc. Population explained below) Resolved-Signal (The successful end result for this Command-Name)
  • Target-Device-Code may use the same Command-Signal).
  • Signal-Test-order (The ordinal place of this Command-Signal in the testing order; highest Signals-Usage gets first place, lowest Signals-usage gets last place).
  • Candidate-Device fields are set to N after first Command (e.g. MUTE) has been resolved (initially all were set to Y).
  • Example for Signal-lnfluencing-Command MUTE.
  • the data structure view after testing of the second signal (MU01) was a success. Note that signals ordered 3 and 4 below will never get to be tested, and their respective Relevant-Target-Device-Codes have been removed (marked with N) from the Candidate-Device list in Relevant-Target- Device-Codes data structure above.
  • Tested N (the initial state for all Command-Signals) indicates that this
  • Command-Signal has not yet been tested; this Command-Signal represents devices (Relevant-Target-Device-Code) which are still in the Candidate-Devices list.
  • Target-Device-Types are retrieved from DB2: Operating-Mode-Required-Commands-Sets.
  • Target-Device-Types are retrieved from DB1 :Target-Device- Codes (expecting less Target-Device-Codes than Target-Devices) and populate the Relevant-Target-Device-Code fields.
  • Geo-availability Based on the Geo-Location which is provided by The-Remote being programmed, the popularity (%) of each Relevant-Target-Device-Code is populated from DB2:Target- Device-Codes-Stats.
  • Candidate-Device Initially, when updating Current-Target-Device-Type, all set to Y.
  • the Command-Test-order values are calculated (Fig. 4 step 410) following each population of the Calculation-Data-Structures (Fig. 3 step 325).
  • the calculation is based on the Current-Target-Device-Type, the popularity of relevant target-devices (i.e.
  • Resolved-Signal Runtime storage for the signal found and verified by the described method (Fig. 4) as controlling the Current-Target-Device-Type for the current Signal-lnfluencing-Command.
  • Command-Signals data structure :
  • a signal implementing the Signal-lnfluencing-Command for this Target-Device-Code Based on Signal-lnfluencing-Command name, Command-Signals of all Target-Device- Codes are retrieved from DB1 :Target-Device-Codes:Command-Signal
  • the likelihood of a specific Command-Signal to influence the Target-Device is determined by:
  • Target-Device-Code which uses this specific Command-Signal
  • Current-Geo-Location i.e. popular TV models in this area.
  • testing order of signals is repeatedly calculated, during programming, for each Signal-lnfluencing-Command.
  • the testing order depends on:
  • Tested N (initial state for all commands) indicates that this Command-Signal is representing a device (Relevant-Target-Device-Code) which is still in the Candidate-Devices list.
  • Target-Device-Type based on DB2:Advanced-Universal-Remote-Controls:Operating-Mode-Required-Commands-Set- ID, taken from DB2:Operating-Mode-Required-Commands-Sets:Target-Device-Type).
  • the algorithm defines the execution order, for all Signal-lnfluencing-Commands relevant to the current Target-Device-Type, as follows:
  • the COST for executing this command is defined as the average time it takes to resolve this command (the time is takes to identify the Signal implementing this command).
  • the command with the minimal COST will be executed first, the command with the maximum COST will be executed last; all other commands will be ordered according to their COST, lower COST first, higher COST later.
  • Signal Contribution to Average of each Command-Signal is the result of multiplying column 2 (p(i) in above formula) by column 3 (i in above formula).
  • Average number of trials is the sum of the values of column 4 (Signal Contribution to Average).

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Details Of Television Systems (AREA)
  • Selective Calling Equipment (AREA)

Abstract

A system for automatically programming a universal remote control, comprising: a universal remote control device; a database storing data related to a plurality of target device types which may be controlled by said one universal remote control device and data required for automatically programming said universal remote control device; a transmitter configured to transmit command signals towards at least one target device; a signal change detector configured to automatically detect changes in output signals of said at least one target device; a system control unit communicating with said universal remote control device, said transmitter and said signal change detector, said system control unit connected with said database, said system control unit configured to execute automatic programming of said universal remote control device.

Description

FULLY AUTOMATIC PROGRAMMING OF AN ENHANCED UNIVERSAL REMOTE
CONTROL
TECHNICAL FIELD
The present disclosure relates to an apparatus and method for programming a universal remote control and, more particularly, to programming a universal remote control in a fully automated manner, without manual operation, using time-optimized techniques for detection of changes of output signals, signals which are generated by the to-be- controlled target devices.
CROSS-REFERENCE TO RELATED PATENT APPLICATIONS This patent application claims priority from and is related to U.S. Provisional Patent Application Serial Number 62/381 ,639, filed 08/31/2016, this U.S. Provisional Patent Application incorporated by reference in its entirety herein.
BACKGROUND AND RELATED ART
Devices that utilize remote controls are found nearly everywhere. A single home will often have several devices, each requiring a different remote, for example, a television, stereo, DVD player, surround sound system, and even curtains or lighting. This can often create frustration and confusion since many remote controls will look similar, and often remote controls will be placed in different areas of a home, making it difficult to find a particular remote control. Universal remote controls have long been used to solve the problem of having a large number of different remote controls. A universal remote control can generally be used for a wide range of devices, eliminating the need for separate remotes. However, universal remote controls still present a considerable amount of frustration and confusion during the programming of a user's individual devices. A universal remote control needs to be customized to function with each of a user's particular devices, all of which will require a different remote control programming code to be programmed into the remote. Customization of a universal remote control has generally been performed by having a look up table, in which a user manually looks up their particular device model, and then inputs several possible codes which correspond to that device, testing each code to find the correct one. However, for many users, knowledge of the exact make and model of all of their devices can be cumbersome.
The problem of manual look up has been addressed partially by online databases of remote control programming codes, wherein a user looks at pictures to match their current remote or current device. However, this still creates the problem of manual look up and entry of remote control programming codes, and still requires a user to sift through dozens or perhaps hundreds of pictures to match their device. Other attempts to alleviate the problem of manual entry have come in the form of "wizards" for remote control programming code identification. The wizard will guide the user through a series of questions in order to select the remote control programming code. These wizards may be either on the remote control, or on a user's computer, and entry of the code can be manual or through an interface such as USB. However, these wizards still do not solve the problem of requiring a user to find a code through specific knowledge of their devices. Many modern devices are complex audio/video equipment that were installed or selected by someone other than the user, making using the wizard difficult or impossible for an average user. In addition, a common audio/video system may include many devices, such as a display screen from one manufacturer, a set of speakers from another manufacturer, with a Blu-Ray, DVD and set-top box all from different
manufacturers.
The universal remote control is programmed to control a device by using a remote control programming code, with each code being programmed to control one of the devices. For example, to control a Model X 48" Television, the universal remote control may use the code number 29852 as a programming code, while a Model Y Blu- Ray Player may have the programming code number 05039. Each code corresponds to a specific set of remote control signals which are programmed to control a given device. Once the universal remote control has been programmed with a certain remote control programming code, it will be capable of transmitting signals that the device will recognize, in order to control the device.
Another method of programming a universal remote control is termed learning: The learning universal remote control learns the signals of each command, by receiving those signals from the original remote control.
The remote control signals are specific signals that are received by a device, and instruct the device to perform a certain function. For example, when a power button is pressed in a remote, the device that is controlled by that remote receives the signal that has been transmitted from the remote, and interprets that signal to toggle the power of the device. Each device, and original remote, has a unique set of signals that are used to perform the various functions of the device. Some devices may have the same or similar control signals, for example, the mute signal of a first device will also be the mute signal of a second device. However, the devices will also have some unique signals, for example, the channel up signals will not be the same.
It is very important to understand the above and realize that there is no method, no consistency, and no standard for allocating sets of signals to remote control commands.
All known to date universal remote control programming operations involve user operations, which often cause errors, confusion, frustration and failure to setup. This significantly reduces the adoption and use of universal remote controls.
Related Art:
US Patent No. 9202372(B2) discloses a remote control device may include: first circuitry to control a function of a first electronic device; second circuitry to be set to control a function of a second electronic device; and a setup controller to set the second circuitry to control a function of a target electronic device based on a code received from a separate device. An electronic device to be controlled by a remote control device may include: an input device to receive a signal from the remote control device; an output device to send a signal to the remote control device; and a processor coupled to the input and output devices, and configured to access a database of codes and to selectively provide codes from the database to the remote control device, the codes configured to set circuitry of the remote control device to control a function of the electronic device and/or an auxiliary electronic device.
US Patent No. 6774813(B2) discloses a universal programmable remote is
programmed for being used with a specific apparatus. A sequence of test codes is sent to the apparatus until the apparatus responds. The test codes comprise tags that are sent along. The tags fall all within a same narrow frequency band. An STB that is eavesdropping on the transmission is receptive to that band. The STB identifies the last tag and enables a server to identify the complete set of codes for the apparatus based on the tag. Thereupon the set is downloaded and programmed in the remote.
US Patent No. 5819294(A) discloses a programmable remote controller is programmed by a PC that has an onboard data base for sets of codes used by a variety of commercially available remote controllers. The data base contains sets of compressed codes. In order to program the remote, the user lets the PC find a match between a single pulse-code transmitted by a specific known controller on the one hand and an item in the data base on the other hand. Upon finding the match, the set containing the matching item is stored in the programmable controller as corresponding to the particular apparatus that is controllable via the specific remote.
US Published Application No. 2008174467 (A1) discloses an apparatus and method for programming a universal remote control. The method includes receiving a transmitted signal of unknown modulation technique from a native remote control and characterizing the received signal in parameters of a pre-determined modulation technique. US Patent No. 7562128(B1) discloses a set top box (STB) is marketed together with a programmable remote. The remote has a dedicated button to connect the STB to a specific server on the Internet. The consumer can notify the server of his/her other CE equipment, which he/she desires to be controllable through the same remote as the one that came with the STB. The server downloads to the STB data representative of the relevant control codes. The STB is provided with means to program the remote with these codes. In return the server has obtained detailed and accurate information about this consumer's equipment. A reliable customer base can thus be built for streamlining Help Desk operations.
SUMMARY
The invention disclosed herein may be embodied as a system and method for automatically, without human intervention, programming a universal remote control device based on general knowledge of target devices in the market place and their commands, time-optimized DB scanning techniques and signal-change-detection techniques of output signals generated by those target devices.
The entire system is based on an enhanced universal remote control and, optionally, additional external units.
According to a first aspect of the present invention there is provided a system for automatically programming at least one universal remote control, comprising: at least one universal remote control device; at least one database storing data related to at least one target device type which may be controlled by said at least one universal remote control device and data required for automatically programming said at least one universal remote control device; at least one transmitter configured to transmit at least one command signal towards at least one target device; at least one signal change detector configured to automatically detect changes in output signals of said at least one target device; and a system control unit communicating with said at least one universal remote control device, said at least one transmitter and said at least one signal change detector, said system control unit connected with said at least one database, said system control unit configured to execute automatic programming of said at least one universal remote control device.
Each one of said at least one universal remote control device may be configured to operate in at least one operating mode. Each one of said at least one universal remote control device may comprise, for each one of said at least one operating mode, mapping of buttons to command names.
Each one of said at least one universal remote control device may comprise, for each one of said at least one operating mode, mapping of soft buttons to buttons
characteristics. The data stored in said at least one database may comprise target device codes and corresponding target device types, target device names, command names, command signals and command descriptions.
The data stored in said at least one database may comprises: at least one universal remote control device model ID; at least one operating mode corresponding to each one of said at least one universal remote control device model ID; at least one target device code; usage statistics of each target device code per geo location; and signal influencing commands comprising parameters required for detecting signal change.
The at least one database may further comprise data related to TV operators; said data related to TV operators describing each of said TV operator's channel lineups, comprising: channel name, channel description, channel logo channel category and popularity statistics of channel per geo location.
The system may further be configured to automatically program favorite channel buttons using said popularity statistics of channel per geo location and per TV operator.
The parameters may comprise: signal type, measured property, minimal change, time window size and counter command name. At least one of said at least one database, system control unit, signal change detector, transmitter and at least one universal remote control device may be embodied as at least one application on a mobile computing device.
At least one of said at least one database, system control unit, signal change detector, transmitter and at least one universal remote control device may be embodied as at least one application on one of a home computing device, an office computing device and an industrial computing device.
At least one of said at least one database, system control unit, signal change detector and transmitter may be embodied as an integral part of said at least one universal remote control device.
At least one of said at least one database, system control unit, signal change detector and transmitter may be embodied as an integral part of one or more target devices.
At least one of said at least one database, system control unit, signal change detector, transmitter and at least one universal remote control device may be embodied as a stand-alone device.
The at least one database, system control unit, signal change detector, transmitter and at least one universal remote control device may be packaged in any packaging combination.
The at least one database may reside in one of a local storage unit and a remote storage unit.
The at least one universal remote control device may comprise a plurality of universal remote control devices and said system may be configured to automatically program in parallel said plurality of universal remote control devices.
Each one of said at least one universal remote control device may comprise a universal remote control model ID, a unique serial number and at least one set of logical elements, each set of logical elements configured to implement a given operating mode and to control one or more target device types, said at least one set of logical elements comprising at least one of: a plurality of commands comprising all the commands for implementing said given operating mode in said universal remote control model ID, each command associated with a command name and with a command signal; a plurality of buttons, each designated by a button ID; buttons command mapping configured to map said plurality of buttons to a plurality of command names and command signals, said buttons comprising soft buttons; a plurality of look and feel characteristics of said soft buttons; and buttons look and feel mapping configured to map each one of said soft buttons to said look and feel characteristics, wherein said universal remote control device is configured to receive said at least one set of logical element from said at least one database.
The commands may comprise basic commands and macro commands, said macro commands comprising a sequence of at least two basic commands.
The system control unit may comprise: a processor; control memory comprising runtime calculation data structures configured to be populated with data from said at least one database, said data relating to target devices; at least one command transmit interface configured to communicate between said processor and said at least one transmitter; at least one signal change detector interface configured to communicate between said processor and said at least one signal change detector; a database interface configured to retrieve data from said at least one database; at least one programming interface configured to send commands, command signals and look and feel data from said control memory to said at least one universal remote control device; at least one indicator interface configured to indicate the status of ongoing programming of said at least one universal remote control device; and a geo location module.
The system control unit may further comprise internet connection means. Each one of said at least one signal change detector may comprise: change detector memory; a signal receiver configured to receive said output signals from said at least one target device; a signal recorder configured to receive said output signals from said signal receiver and record them in said change detector memory; a signal analyzer configured to analyze said received output signals according to predefined parameters; a detector control unit configured to control operation of said signal receiver, said signal recorder and said signal analyzer; and a system control interface configured to communicate between the signal change detector and said system control unit.
The predefined parameters may comprise measured property, minimal change and time window size.
The data required for automatically programming said at least one universal remote control device may comprise data related to one or more operating modes and one or more target device types.
The at least one target device type may comprise at least one of the group consisting of: TV, Display, Projector, Set-Top-Box (STB), Streamer, Speakers, Amplifiers, Radios, Air-Conditions, Fans, Lights, Shades, Cameras and Smart Home devices.
The data stored in said at least one database may comprise a streaming and web sites table.
The data stored in said at least one database may comprise a remote customization table.
The automatic programming may be configured to be done without human intervention.
The at least one universal remote control device may comprise a plurality of universal remote control devices and at least one of said plurality of universal remote control devices may have a model ID different than the model ID of the other universal remote control devices in said plurality.
According to another aspect of the present invention there is provided a method of automatically programming a universal remote control device, comprising: transmitting at least one basic command signal toward at least one target device to be controlled by said universal remote control device, said at least one basic command signal configured to modify the state of said target device; detecting at least one change in said at least one target device's at least one output signal in response to said sent at least one basic command signal; and programming said at least one command in said universal remote control device for controlling said at least one target device.
The method may further comprise obtaining at least one operating mode of said universal remote control, wherein said at least one target device comprises a target device type; said at least one basic command signal belongs to one signal influencing command for said target device type; and said programming comprises programming said at least one command for said universal remote control device for controlling said at least one target device.
Transmitting at least one basic command signal may comprise transmitting in a calculated order configured to minimize said programming time.
Detecting changes may comprise identifying the basic command signal that caused said changes.
The method may further comprise obtaining look & feel buttons data for said
programmed at least one command. The at least one target device and said at least one basic command signal may be selected from a database.
The automatic programming may be done without human intervention.
The at least one signal influencing command may be selected from a database, based on a calculated order configured to minimize said programming time. The method may further comprise calculating an order of said signal influencing commands using cost related with executing each one of said signal influencing commands
The at least one basic command signal order may be calculated during said
programming. The at least one signal influencing command order may be calculated during said programming. Calculating may comprise using data related to the popularity of devices of said target device type in a geo-location associated with said universal remote control device.
The cost may comprise average time to resolve each one of said signal influencing commands. The order may comprise executing signal influencing commands with lower cost first.
The at least one command signal order may comprise first executing command signals with higher popularity in said geo-location.
According to another aspect of the present invention there is provided a database for use with a system comprising an automatically programmable remote control device, said database storing data related to at least one target device type which may be controlled by least one universal remote control device and data required for
automatically programming said at least one universal remote control device, comprising: at least one universal remote control device model ID; at least one operating mode corresponding to each one of said at least one universal remote control device model ID; at least one target device code and corresponding at least one target device type; at least one set of command names and related command signals which control said at least one target device; usage statistics of said at least one target device code per geo location; and signal influencing commands comprising parameters required for detecting change in output signal of said at least one target device. The database may further comprise data related to TV operators; said data related to TV operators describing each of said TV operator's channel lineups, comprising:
channel name, channel description, channel logo channel category and popularity statistics of channel per geo location.
The parameters may comprise: signal type, measured property, minimal change, time window size and counter command name.
The database may further comprise data related to streaming and web sites,
comprising: site ID, site URL, site description, site logo, site category and popularity statistics of site per geo location. The database may further comprise data related to customization of said remote control device, comprising: remote ID, customized field and customization data.
BRIEF DESCRIPTION OF THE DRAWINGS For better understanding of the invention and to show how the same may be carried into effect, reference will now be made, purely by way of example, to the accompanying drawings.
With specific reference now to the drawings in detail, it is stressed that the particulars shown are by way of example and for purposes of illustrative discussion of the preferred embodiments of the present invention only, and are presented in the cause of providing what is believed to be the most useful and readily understood description of the principles and conceptual aspects of the invention. In this regard, no attempt is made to show structural details of the invention in more detail than is necessary for a fundamental understanding of the invention, the description taken with the drawings making apparent to those skilled in the art how the several forms of the invention may be embodied in practice. In the accompanying drawings:
Fig. 1 is a schematic block diagram of an exemplary system for automatic programming of universal remote control according to embodiments of the present invention;
Fig. 2 is a view of the logical elements of The-Remote required for operating in a single Operating-Mode, according to embodiments of the present invention;
Flg.3 is an exemplary flowchart of the High Level Algorithm performed by the system according to embodiments of the present invention;
Fig. 4 is a flowchart showing one embodiment of a Signals Matching Algorithm for identifying commands required for controlling a single Target-Device operating in all its relevant Operating-Modes of the current Remote-Model-ID, according to embodiments of the present invention;
Fig. 5 is a block diagram of components of the System-Control according to
embodiments of the present invention; and FIG. 6 is a block diagram of components of a Signal-Change-Detector according to embodiments of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
The present invention provides an automatic, hands-free, system and method of programming a universal remote control, using detection of changes in Output-Signal (sound or picture or light or temperature or other signal, see definitions) of Target- Devices.
Embodiments of the invention are now discussed in more detail referring to the accompanying drawings.
Various embodiments are disclosed herein; however, it is to be understood that the disclosed embodiments are merely illustrative of the invention, which can be embodied in alternate fashions. In addition, each of the examples given in connection with the various embodiments is intended to be illustrative and not restrictive. DEFINITIONS
The following terms, used in the present application, are defined as follows:
Target-Device-Type: A group of devices with similar functionalities (e.g. TV, Display, Projector, STB, Streamer, Speakers, Amplifiers, Radios, Air-Conditions, Fans, Lights, Shades, Cameras, Smart Home devices, etc.) which may be controlled by a universal remote control.
Target-Device: A specific device which belongs to a single Target-Device-Type (e.g. Sony-XBR55X850D, LG-LW1016ER).
ControM: An element of a universal remote control with which the user interacts in order to control Target-Devices, by transmitting one or more Command-Signals configured to modify the state of the Target-Devices.
Soft-Button: A ControM which may be presented to the user by one or more alternative LOOK & FEEL capabilities, as configured by the system. Button: A soft Control 1 or Soft-Button (e.g. as common in touch screen devices) or a physical Control 1 or Physical-Button (e.g. buttons of a traditional remote control) or a combined soft-and-physical Contrail , or any other Contrail . Designated by a Button-ID.
Buttons-Commands-Mapping: Mapping of Buttons to Commands (basic or macro), which their signals will be transmitted once the button is activated.
Designated by a Buttons-Commands-Mapping-ID.
Buttons-L&F-Mapping: Look and Feel properties which may be linked to a Soft-Button, e.g. size, texts, logos, press & release feel parameters, sounds, colors, lights sequence, vibration sequence.
In the context of A/V devices, this may be especially useful for indicating settings of Favorite Channels (e.g. of TV, Internet, Radio).
Designated by a Buttons-L&F-Mapping-ID.
In the detailed description below, any mention of Buttons-L&F-Mapping, or L&F- Characteristics, or L&F-Data, or Button-Characteristics should be read as relating to Soft-Buttons only.
Basic-Command: A message generated by a transmitter and received by the Target- Device, which is intended to modify the state of the Target-Device (e.g. Mute message).
Macro-Command: A Macro-Command is a sequence of at least two Basic-Commands, interleaved with Timeout-Commands (e.g. close-shades-open-TV-channel-78, where a user operation will cause two different Target-Devices to operate, or Single-Button- Press-Tuning, where a user operation will cause the Target-Device to tune to a well- defined, set-in-advance, TV channel 78).
By use of macro commands the system supports automatic programming of buttons to tune to favorite web sites, favorite streaming sites and favorite TV channels, by a single button press. Favorite-Channel-Button: In the context of A/V/Web Target-Devices, a Button which has been mapped to a Basic or Macro (most cases) Command; once activated, this Button will cause the Target-Device to tune to a desired channel, or web site, or streaming site. The System may be configured to automatically program Favorite-Channel-Buttons, which will enable tuning by a single button press to the user's most likely to be desired TV channel or web site or streaming site. This will be done by taking advantage of DB knowledge regarding Channel-Popularity (viewing) in different Geo-Locations, per each TV-Operator. Obviously, by use of the Remote-Customizations-Table, the user will be able to modify these system settings.
Command-Name: A Basic-Command or a Macro-Command, with a link to the relevant Command-Signal. Command-Signal: A sequence of IR or RF or Wi-Fi, or any other form of wireless signals, implementing a Command-Name.
Counter-Command-Name: A Command-Name which has an opposite effect to that of another Command-Name, e.g. Mute and Un-Mute, Pause and Play, Set-Lights-for- Coming-Home and Set-Lights-for-Leaving-Home.
Target-Set-of-Commands-and-Signals: A full set of basic Command-Names and related Command-Signals which control a specific Target-Device. Target-Device-Code: A code describing a group of Target-Devices which share the same Target-Set-of-Commands-and-Signals, or, where Target-Set-of-Commands-and- Signals of one group member are a subset of the Target-Set-of-Commands-and-Signals of another group member. Operating-Mode: A remote control mode of operation, where the remote control controls one or more Target-Device-Types, each device controlled by a subset of its Target-Set-of-Commands-and-Signals.
A remote control may have one or more Operating-Modes.
Each Operating-Mode has its own Look & Feel characteristics (Buttons-L&F-Mappings), which are useful for the User to interact with.
Each Operating-Mode has its own Commands and related Buttons (Buttons- Commands-Mapping), which define the function of each Button while using the remote in this Operating-Mode.
Each Operating-Mode may enable control of one or more Target-Device-Types.
Each Operating-Mode has a single Operating-Mode-Required-Commands-Set-ID (defined below), which may control multiple Target-Devices.
Each Operating-Mode may enable control of not more than one Target-Device (e.g. specific TV model) belonging to a Target-Device-Type (e.g. TV type).
A single remote control may control multiple Target-Devices belonging to a specific Target-Device-Type (e.g. a few different TV models), as long as controlling of each such device is done by use of a different Operating-Mode.
This may be achieved by use of the following method:
When connecting an already programmed remote to the system, the system will duplicate all the remote Operating-Modes, assigning each of them with a new name, and program the newly named Operating-Modes while not modifying the old Operating- Modes (e.g. programming the remote to control also the bed room TV model, while previously it controlled only the living room TV model).
Programming will commence almost identically (apart from ignoring original Operating- Modes) to the programming process described in this application for the case of first time programming of the remote.
Examples of Operating-Modes:
In the context of AN - TV live viewing, VOD viewing, Streaming viewing, Radio listening, Music Listening, Sports Mode, News Mode.
In the context of Climate control - Cooling settings, Warming settings. In a combined A/V and Climate setting:
Cooling and Summer Music settings, Warming and Winter Music settings.
In a combined setting of a Set Top Box (STB) and a TV:
An Operating-Mode for controlling TV-Power, TV-Volume, STB-Channel-UP, STB- Channel-Down, and six STB-Favorite-Channels.
Operating-Mode-Required-Commands-Set: A set of Command-Names required by a specific Operating-Mode of a specific Remote-Model-ID, where each Command-Name relates to a specific Target-Device-Type (command is a Basic- or Macro-Command) or to multiple Target-Devices-Types (command must be a Macro-Command), where the Command-Names are related to Ul (User Interface) characteristics (via the relevant Buttons-L&F-Mapping).
In case Macro-Commands are included, the set of Command-Names also includes all the Basic-Commands used by the relevant Macro-Commands.
Designated by an Operating-Mode-Required-Commands-Set-ID.
Remote-Required-Target-Device-Type-Commands: All Command-Names of Target- Device-Type which are included in any of the Operating-Mode-Required-Commands- Sets of a Remote-Model-ID.
This group includes also Basic-Commands relevant to the Target-Device-Type, used by Macro-Commands of the Remote-Model-ID.
Advanced-Universal-Remote-Control: An enhanced universal remote control which is programmed automatically, without human intervention, with capabilities beyond those of a standard universal remote control, e.g.:
a) It may operate in one or more Operating-Modes.
b) For each remote type (Remote-Model-ID) and Operating-Mode, there is a Buttons- Commands-Mapping-ID, mapping Buttons to Command-Names.
c) For each remote type (Remote-Model-ID) and Operating-Mode, there is a Buttons- L&F-Mapping-ID mapping Buttons to Button-Characteristics. d) It must have communication capabilities with a controller.
e) It has a Remote-Model-ID (i.e. model identification code), which it may share with a controller.
f) It may inform its interest in being programmed.
g) It may accept all its settings from a controller and use them accordingly.
h) It is likely to change its look and feel (using Buttons-L&F-Mapping) upon entering a different Operating-Mode.
i) It has Ul means for selecting its own Operating-Modes, based on the Remote-Model- ID (similar to other universal remote controls that control more than a single target device).
j) It may be customized by each User,
k) It has a unique serial id, The-Remote-ID
Remote-Model-ID: An ID indicating a specific type of an Advanced-Universal-Remote- Control.
The-Remote: An instance of an Advanced-Universal-Remote-Control.
Output-Signal: A signal (e.g. Audio, Sound, Noise, Video, Picture, Lights, Temperature, Humidity, Smell, Magnetic Field, Electrical Field, Infra-Red, RF, Wi-Fi) that is generated by a Target-Device.
Signal-lnfluencing-Command: Command-Signal generated by The-Remote which causes a change in Output-Signal of a Target-Device.
Each such command is not necessarily included in any group of Remote-Required- Target-Device-Type-Commands relating to the Target-Device.
Each such command is necessarily included in the Target-Set-of-Commands-and- Signals of the related Target-Device. Detect-Change-Message: A message sent from System-Control to Signal-Change- Detector, requesting that Output-Signal should be monitored for a change which is relevant to this message parameters; and that once such a change is identified, this should be reported back to System-Control.
Change-Detected-Message: A message sent from Signal-Change-Detector to System- Control, indicating that a signal change has been detected.
Fig. 1
Fig. 1 is a schematic block diagram of an exemplary system 20 for automatic
programming of universal remote control according to embodiments of the present invention, comprising:
System-Control unit 22 - A computing unit which, based on DB1 , DB2, communication means with the Transmitter and The-Remote, and communication means with the Signal-Change-Detector, is capable of executing the described The-Remote automatic programming process.
Database DB1 24 - A database of Target-Device-Codes with their corresponding Target-Device-Types (e.g. TVs, STBs, Smart Home Appliances), Target-Device-Names (e.g. Sony-XBR55X850D, LG-LW1016ER, GE-AJEM12DCF), Command-Names, Command-Signals, Command-descriptions (all Target-Set-of-Commands-and-Signals) and definitions of related Macro-Commands. This data is commonly used for the sake of programming off-the-shelf universal remote controls.
Database DB2 26 - A database which includes information required in order to fully automatically program an Advanced-Universal-Remote-Control.
DB2 26 is linked to data in DB1 24 by the Target-Device-Type, Target-Device-Codes, and Command-Names fields. DB226 comprises:
a) All Advanced-Universal-Remote-Control-Model-IDs supported by the system 20, each with its respective Operating-Modes.
b) The Operating-Mode-Required-Commands-Set per each Operating-Mode of a Remote-Model-ID c) The Buttons-L&F-Mappings and the Buttons-Command-Mappings per each
Operating-Mode of a Remote-Model-ID.
d) Definitions of all supported Geo-Locations (ID, coordinates, description).
e) Target-Device-Codes, including usage statistics of each Target-Device-Code per Geo-Location.
f) TV Operators (e.g. DirecTV, EchoStar, Sky), each with its respective channel lineups, including information about each of the channels, such as name, description, logo, category, popularity statistics per Geo-Location.
g) Signal-lnfluencing-Commands, each with its respective values for output Signal- Type, Measured-Property, Minimal-Change, Time-Window-Size, Counter-Command- Name, and, if used, other values of parameters required for detecting change.
h) Web sites which may be accessed by a specific macro-command. This could be done by spelling the web site name using signals of an I R keyboard, or by navigating on a virtual keyboard (e.g. <Right><Right><Down><Enter> for the letter S).
Note that by use of macro commands the system supports automatic programming of buttons to tune to favorite web sites and favorite streaming sites and favorite TV channels, by a single button press.
i) All Remote-Customizations (changing function or appearance of button by user) which have been done by all users of the system.
j) Any other information which may be useful for automatic programming of The- Remote, but is not included in DB1.
It will be appreciated by persons skilled in the art that databases DB1 and DB2 are only defined by their contents, which may alternatively be stored in a single database or in more than two databases.
Data models and content examples of DB1 and DB2 are provided below, in the Data Models section.
Signal-Change-Detector 28 - A signal monitoring component which detects changes in the Output-Signal 42 that is generated by a Target-Device 38. The Signal-Change-Detector's functionality may be divided between a signal detection unit and the System-Control that receives the detected signal and performs the required calculations for detecting signal change. The-Remote 32 - An instance of an Advanced-Universal-Remote-Control according to the present invention.
Transmitter 36 - for transmitting Command-Signals 34 initiated by System-Control 22 towards the Target-Devices 38 for modifying the state of the Target-Devices.
Target-Devices 38 - Specific devices which may be controlled by a universal remote control. Each Target-Device belongs to a single Target-Device-Type (e.g. both Sony- XBR55X850D, LG-LW1016ER belong to type TV).
According to embodiments of the present invention, one or more of DB1 24, DB2 26, System-Control unit 22, Signal-Change-Detector 28, Transmitter 36 and The-Remote 32 may be embodied as an Application or Applications on a mobile computing device (e.g. smartphone).
According to embodiments of the present invention, one or more of DB1 24, DB2 26, System-Control unit 22, Signal-Change-Detector 28, Transmitter 36 and The-Remote 32 may be embodied as an Application or Applications on a home or office or industrial computing device (e.g. PC, laptop). According to embodiments of the present invention, one or more of DB1 24, DB2 26, System-Control unit 22, Signal-Change-Detector 28 and Transmitter 36 may be embodied as an integral part of The-Remote 32.
According to embodiments of the present invention, one or more of DB1 24, DB2 26, System-Control unit 22, Signal-Change-Detector 28 and Transmitter 36 may be embodied as an integral part of one or more Target-Devices 38.
According to embodiments of the present invention, one or more of DB1 24, DB2 26, System-Control unit 22, Signal-Change-Detector 28, Transmitter 36 and The-Remote 32 may be embodied as a stand-alone device. According to embodiments of the present invention, one or more of DB1 24, DB2 26, System-Control unit 22, Signal-Change-Detector 28, Transmitter 36 and The-Remote 32 may be packaged all together in single package, each in a separate package, or in any other packaging combination. According to embodiments of the present invention, DB1 24 and DB2 26 may each reside in a different unit, or both in the same unit, in local or remote storage unit or units.
The System 20 is capable of automatically programming in parallel multiple instances of The-Remote 32, where each instance may be of a different type (each type identified by Remote-Model-ID), where each instance is capable of controlling multiple Target- Devices 38, where each Target-Devices 38 may operate in multiple Operating-Modes.
In the embodiments of Fig. 1 and of Fig. 5, for the sake of clarity, we assumed that a single System-Control 22 interfaces with one Transmitter 36, one The-Remote 32, and one Signal-Change-Detector 28.
In reality, and as supported by all other parts of this application, a single System-Control 22 may interface with multiple Transmitters 36 based on the type of signals expected by different Target-Devices 38, multiple Signal-Change-Detector 28 based on the different Output-Signals 42 generated by the Target-Devices 38, and multiple The-Remotes 32 based on the number of parallel programming operations done by a single System- Control 22 (e.g. a factory setting may desire to program multiple The-Remotes 32 in parallel).
The above mentioned parallel programming operations done by a single System- Control 22 should not be confused with the parallel programming capability of System 20, while using multiple System-Control 22 units.
Fig. 2 Fig. 2 is a view of logical elements of The-Remote 32, required for controlling all Target- Devices relevant to a single Operating-Mode, according to embodiments of the present invention. These logical elements are assigned values from DB1 24 and DB2 26 as an outcome of the automatic programming process.
It is understood that one or more Operating-Modes, each of the modes relating to one or more Target-Devices, may be supported in parallel (without the need for re- programming) by a single The-Remote 32.
An element shared by all Operating-Modes of The-Remote 32 is The-Remote-ID 40: An ID comprising a Remote-Model-ID and a unique serial number which is assigned to each specific Advanced-Universal-Remote-Control (Remote-Model-ID guarantees that each remote will be programmed automatically with its appropriate commands and buttons, which are retrieved from DB1 and DB2).
The following five logical elements (41, 42, 43, 44, 45) are required by each Operating- Mode of The-Remote 32 in order to control relevant Target-Devices:
Buttons 41: Each Button is designated by a Button-ID. Buttons-Commands-Mapping 42: mapping Buttons to Command-Names. Commands 43 of Operating-Mode-Required-Commands-Set:
All Operating-Mode-Required-Commands-Sets for a specific Remote-Model-ID, with the relevant Command-Signal of each Command-Name.
Buttons-L&F-Mapping 44: Mapping of (or linking) Buttons 41 to Look and Feel properties (L&F-Characteristics 45). Each Button-L&F-Mapping is designated by a Buttons-L&F-Mapping-ID.
L&F-Characteristics 45: Look and Feel properties of a Button, e.g. size, texts, fonts, logos, press & release feel parameters, sounds, colors, lights sequence, vibration sequence.
In the context of A/V devices, text logos and other characteristics may be useful, amongst others, for indicating settings of Favorite Channels (e.g. of TV, Internet, Radio). During normal operation, pressing a Button 41, which is identified by its L&F- Characteristics 45, will send the Command-Signal related to the mapped Command 43 to a Target-Device.
Following successful execution of the Hi-Level Algorithm (described below in
conjunction with Fig. 3) and the Signal Matching Algorithm (described below in conjunction with Fig. 4), and based on The-Remote-ID 40 which is provided to the system 20 by The-Remote 32, all required data elements (and related Commands, Signals, Buttons, L&F- Characteristics and Mappings) are forwarded from DB1 and DB2 to The-Remote 32, so that a user may comfortably use The-Remote 32.
Following are definitions of additional terms used in conjunction with the flowcharts of
Fias. 3 and 4:
Candidate-Devices: A transient list of Target-Device-Codes (marked with Y in
Relevant-Target-Device-Codes data structure of the Calculation-Data-Structures), where one of them will be identified as matching the specific Target-Device desired to be controlled, once the programming process stage is completed successfully.
Calculation-Data-Structures: Runtime data structures which are repeatedly populated from DB1 and DB2 and are used by the algorithms of Fig.3 and Fig. 4. These data structures are helpful in setting the order in which Signal-lnfluencing-Commands are being used, and the order in which their relevant Command-Signals are being exercised, in order to automatically program The-Remote 32 as quickly as possible.
Usage principles of the Calculation-Data-Structures: Following are some principles of the method, and description of one embodiment of used data models. Data sources, data usage, and various data driven calculations will be explained.
DB1 and DB2 are databases populated in advance of any automatic programming operation. On the other hand, Calculation-Data-Structures are runtime data structures which are repeatedly populated during the automatic programming of each The-Remote 32. Population is done per each Target-Device-Type which The-Remote 32 attempts to control. Calculation-Data-Structures are populated with data about all Target-Devices of Target-Device-Type; this is done based on the Remote-Model-ID to be programmed, and on information from DB1 and DB2 (e.g. statistics regarding popularity of Target Devices in the Geo-Location of The-Remote being programmed).
The programming process is based on cycles of tests until test success is achieved, where test success is determined when a command which controls the device is identified. Upon each test failure, the algorithm marks as irrelevant (with N) the related (those using the same failed command signal) target devices (designated by Target- Device-Codes in the Calculation-Data-Structures). Upon each test success, the algorithm marks as relevant (with Y) the related target devices, and marks as irrelevant (with N) the non-related target devices (those using a different command signal).
This process of testing continues until all required commands for all required Target- Device-Types are resolved.
The algorithm attempts to come to conclusions as fast as possible; this is done by executing, on average, the minimal number of tests. This is achieved by ordering the tests so that tests which are more likely to succeed are executed first.
The likelihood of a test to succeed (respond to the Command-Signal used by the test) is determined by the popularity of related Target-Devices in the relevant Geo-Location.
Testing order of the different signals:
The testing order of different signals is determined by going over all potential Target- Devices, all relevant Signal-lnfluencing-Commands, and all related Command-Signals. Selecting and ordering Target-Devices is defined by the remote type (Remote-Model- ID) being programmed.
Selecting and ordering Signal-lnfluencing-Commands is defined by the Target-Device- Type (e.g. TV) which is to be controlled, as described in details below in the paragraph entitled "Description of the algorithm defining the execution order of Signal-lnfluencing- Command in DB2".
Selecting and ordering Command-Signals being tested is defined, as explained above, by the popularity of the still relevant Command-Signals (based on popularity of still relevant Target-Device-Codes) in the relevant Geo-Location. This is also explained in detail while reviewing the Command-Signals data structure below.
Fia. 3
Fig. 3 is an exemplary flowchart 300 of the High Level Algorithm performed by the system 20. The flowchart describes the automatic programming of The-Remote 32, by performing an iterative process, of going over all Target-Device-Types of each of the Operating-Modes used by the Remote-Model-ID of The-Remote 32, which is being programmed for operation at a current Geo-Location (Geo-Location-ID). Based on the current Remote-Model-ID of The-Remote 32, the High Level Algorithm described in conjunction with Fig.3, attempts to resolve all Operating-Mode-Required-Commands- Set-IDs of all Operating-Modes, by invoking the process described in Fig. 4 for all related pairs {Operating-Mode-Required-Commands-Set-ID, Target-Device-Type}. In other words, for each Target-Device-Type, this High Level Algorithm invokes the Signal Matching Algorithm described in conjunction with Fig. 4, in order to identify the signals required by The-Remote 32 to control one of the Target-Devices 38.
The automatic programming algorithm starts in step 305 by confirming that all units i.e. Target-Devices 38, System-Control 22, Transmitter 36, Signal-Change-Detector 28 and The-remote 32 are turned on; and requesting that Target-Devices Output-Signals (e.g. Audio, Temperature) be left at regular operating level. System-Control 22 and The-Remote 32 (which is to be programmed) communicate and identify they are at start-of-programming, and both may indicate it (e.g. to a bystander) by activating an Indicator (e.g. a color light, a sequence of lights, a sound, a display), and in their respective memories. System variables Current-Model-ID and Current-Geo- Location-ID are being set. In step 310 the first (current) Operating-Mode is set and in step 315 the Operating- Mode-Required-Commands-Set for the current Operating-Mode is set.
In step 320 the current Target-Device-Type for the current Operating-Mode is set (from DB2 26) and in step 325 the Calculation-Data-Structures are initialized for the current Target-Device-Type to include all relevant (e.g. based on Geo-Location statistics, type of device, etc.) Target-Device-Codes from DB1 24 and DB2 26, as will be explained in detail below.
In step 328 the Signal Matching algorithm for the Target-Device-Type is performed by the algorithm of Fig. 4, as will be explained in detail below. In step 330, if all Operating-Mode-Required-Commands-Sets for the current Remote- Model-ID have been resolved, the fully automatic programming of The-Remote has been completed (step 335). System-Control 22 and The-Remote 32 may indicate (e.g. to a bystander) end of programming, by modifying the initially set user indicators (e.g. a color light, a sequence of lights, a sound, a display message). The system confirms that all Operating-Mode-Required-Commands-Sets with related Signals and L&F data were received by The-Remote 32 (step 337).
Otherwise, if there still remain unresolved Operating-Mode-Required-Commands-Sets for the current Remote-Model-ID (340), the algorithm continues looping through all remaining Target-Device-Types relevant to the current Operating-Mode, as they appear in DB2 26 (step 345).
When all Target-Device-Types have been processed for the current Operating-Mode, the algorithm continues looping through all remaining Operating-Modes (steps 350, 355).
In step 360, in case all iterations have been completed, i.e. there are no more
Operating-Modes (and related Target-Device-Types) to be programmed, and not all Operating-Mode-Required-Commands-Sets have been resolved, it is an indication that at least some parts of the automatic programming have failed (some Commands of some Target-Devices have not been resolved). Failure will be recorded in memory of The-Remote 32 and System-Control 22, and communication between the user and customer support may be initiated in order to resolve the issue.
Fig. 4
Fig. 4 is a flowchart 400 showing one embodiment of a Signal Matching Algorithm for all Signal-lnfluencing-Commands of a single Target-Device-Type, according to the present invention. Use of this algorithm enables System 20 of Fig. 1 to automatically program The-Remote 32.
System-Control 22 initializes Signal-Change-Detector 28 to monitor Output-Signal 42 and report upon detection of change, while instructing the Transmitter 36 to transmit Command-Signals 34, according to an execution-time optimized order.
Once System-Control 22 is notified by Signal-Change-Detector 28 of a change, and the latest transmitted Command-Signal 34 is verified (as described below), the latest transmitted Command-Signal 34 is recorded (in the Resolved-Signal field of the
Calculation-Data-Structures) as matching the current Signal-lnfluencing-Command. Candidate-Devices list of the Calculation-Data-Structures is trimmed down, so as to include only Relevant-Target-Device-Codes that use the last transmitted Command- Signal.
Once Remote-Required-Target-Device-Type-Commands have been resolved, System- Control 22 compiles a message including available (resolved so far) Operating-Mode- Required-Commands-Sets, Buttons-Command-Mappings and Buttons-L&F-Mappings, and forwards it to The-Remote 32, which follows with its internal programming accordingly.
In step 405 the initial order of Command-Signals for each Signal-lnfluencing-Command is calculated, and in step 410 the order of Signal-lnfluencing-Commands is calculated, and the first Signal-lnfluencing-Command is set to be worked with. Both of the above calculations are done by use of the Calculation-Data-Structures, as will be explained in detail below. In step 415 the Signal-Change-Detector 28 is initialized by System-Control 22 and in step 420 the algorithm sets a current Command-Signal for the Signal-lnfluencing- Command from DB1.
In step 425 the current Command-Signal of the Signal-lnfluencing-Command is transmitted to the Target-Device by the Transmitter 36.
Signal-Change-Detector 28 monitors Output-Signals 42 from the Target-Device (step 430) and if no change has been detected, the algorithm checks whether additional Command-Signals remain be tested (step 435) and loops back to step 420 if affirmative to test the next Command-Signal. Otherwise, the algorithm checks whether additional Signal-lnfluencing-Commands remain to be tested (step 440) and if affirmative, loops back to step 415, with the next Signal-lnfluencing-Command that differentiates, i.e. uses different Command-Signals for the remaining Candidate-Devices.
If the Signal-lnfluencing-Command does not differentiate (i.e. same Command-Signal is used), the algorithm will progress and try the next-in-order Signal-lnfluencing- Command.
If in step 430 a change has been detected in the Target-Device's Output-Signal, the algorithm tries to identify and verify the matching Command-Signal (step 450).
Identifying the matching Command-Signal is required since a number of different Command-Signals may be transmitted to the Target-Device in a short period of time in order to reduce operation time. The identification is done by comparing the exact time of transmission of each Command-Signal with the exact time of Output-Signal change identification. Verifying the matching Command-Signal is required in order to confirm that the Command-Signal identified as matching is truly the Command-Signal that caused the change in the Target-Device's Output-Signal. This is done by exercising the identified Command-Signal and the signal of the Counter-Command-Name in a slow and careful way, and verifying that we truly found the influencing Command-Signal. For example, assume that the TV movie has a period of silence; the system may wrongly assume that the Command-Signal used during this silence period caused the TV to MUTE. The verification process may identify that actually the Command-Signal does not have any influence on the TV. If the process of verifying and identifying the matching Command-Signal is successful, the resolved Command-Signal is recorded as matching the current Signal-lnfluencing- Command (step 455). In step 460 the Candidate-Device field is set to N for all Relevant- Target-Device-Codes NOT using the verified Command-Signal (in the Calculation-Data- Structures: Relevant-Target-Device-Codes data structure). Following, if Remote- Required-Target-Device-Type-Commands for the Current Target-Device have been identified (step 465) - the Target-Device-Type is recorded as "Success" (step 470), the Operating-Mode-Required-Commands-Sets with related Signals and L&F data are sent to The-Remote 32 (step 475) for programming and the execution flow returns to the High Level Algorithm of Fig. 3 in order to continue resolving signals for other Target- Device-Types and other Operating-Mode-Required-Commands-Sets (i.e. other
Operating-Modes).
Otherwise, if in step 465 not all of the Remote-Required-Target-Device-Type- Commands for the Current Target-Device have been identified, the algorithm loops back to step 440, and continues to search for a Command-Signal used by the Target- Device for the next Signal-lnfluencing-Command.
Alternatively, if in step 450 the Output-Signal has not been verified, the algorithm loops back to step 435.
If in step 440 it has been determined that all the Signal-lnfluencing-Commands have been tested, failure is recorded for this Target-Device-Type, and the execution flow returns to the Hi Level Algorithm of Fig. 3 in order to continue resolving signals for other Target-Device-Types and other Operating-Mode-Required-Commands-Sets (i.e. other Operating-Modes).
Fig. 5
Fig. 5 is a block diagram of one embodiment of components of the System-Control 22. In the accompanied description "i/f" stands for Interface, "Tx" stands for Transmit, "RC" stands for remote-control.
System-Control 22 comprises Command-Tx i f 510, Signal Change Detector i f 520, RC Programming i/f 530, Indicator i/f 540, Databases i/f 550, Processor 560 and Memory 570. Part of the Memory is used for the Calculation-Data-Structures 580. System- Control 22 additionally comprises Global-Positioning module 590, such as GPS (Global Positioning System) or IP Address-to-Geo-Location, e.g. IP Find (www.ipfind.co).
accessed via Internet-Connection module 595.
Upon start of operation (power on), the Processor 560 checks via the RC Programming i/f 530 whether The-Remote 32 is available and interested in being programmed. Upon confirmation, the Processor 560 may use the Indicator i/f 540 to turn on the Indicator; this indicates to a bystander that programming is in progress.
Using the Databases i/f 550, the Processor 560 retrieves information from DB1 24 and DB2 26 as required by the algorithms of FIGs.3 and 4, and stores all or some of this information in memory (e.g. for populating the Calculation-Data-Structures).
Processor 560, using the Command-Tx i/f 510, instructs Transmitter 36 to start transmitting Command-Signals.
The Processor 560, using Signal Change Detector i/f 520, requests Signal-Change- Detector 28 to start looking for changes in the Output-Signal 42 (e.g. sound, light, temperature), based on parameters (stored in DB2) such as Signal-Type, Measured- Property, Minimal-Change, Time-Window-Size, and others. Following, using Command- Tx i/f 510, the Processor 560 requests the Transmitter 36 to transmit Command- Signals, as described in conjunction with Fig. 4. When required by the algorithm of Fig. 4 (e.g. when Change-Detected-Message arrived via the Signal Change Detector i/f 520), the Processor 560, using the Command-Tx i/f 510, instructs Transmitter 36 to stop transmitting the Command-Signals.
Once a Change-Detected-Message arrives, Processor 560 instructs Transmitter 36 and Signal-Change-Detector 28, via the corresponding interfaces, to verify (step 450) the detection (e.g. by repeating a few times transmission of the Command-Signal just used, and their Counter-Command-Name signals, and verifying identification of change). Once verification succeeds, Processor 560 records in Memory 570 the verified
Command-Signal 34 as implementing the current Signal-lnfluencing-Command.
Processor 560 manages and updates the Calculation-Data-Structures 580 and the Candidate-Devices list, as described in conjunction with Fig. 4. Once Remote-Required-Target-Device-Type-Commands for current Target-Device- Type have been identified (e.g. a single Target-Device-Code in the Candidate-Devices list), Processor 560 sends from Memory the Remote-Required-Target-Device-Type- Commands with related Signals and L&F data, via the RC Programming i/f 530, to The- Remote 32.
Once automatic programming has been completed successfully (Fig. 3), Processor 560, using the Indicator i/f 540, may order to indicate "completed successfully" (e.g. to a bystander).
In the embodiments of Fig. 1 and of Fig. 5, for the sake of clarity, we assumed that a single System-Control 22 interfaces with one Transmitter 36, one The-Remote 32, and one Signal-Change-Detector 28.
According to embodiments of the invention a single System-Control 22 may be used for programming a plurality of The-Remote 32, optionally of different Remote-Model-IDs, using a plurality of Transmitters 36 and a plurality of Signal-Change-Detectors 28, whereby the System-Control 22 may comprise a respective plurality of command-Tx interfaces 510, a plurality of signal change detector interfaces 520, a plurality of programming interfaces 530 and a plurality of indicator interfaces 540.
Fig. 6 Fig. 6 is a block diagram of one embodiment of components of a Signal-Change- Detector 28. Other different implementations may be integrated with The-System 20.
Following are definitions of parameters of the Detect-Change-Message sent from the System-Control 22 to the Signal-Change-Detector 28 upon request to identify change in the Output-Signal 42.
Figure imgf000034_0001
Figure imgf000035_0001
[Examples of sets-of-values (each row represents a set) of parameters:
Figure imgf000035_0002
Figure imgf000036_0001
In one embodiment, Once System-Control 22 requests to be informed of a change in the Output-Signal 42, Signal-Change-Detector 28 will monitor for the change and once identified, will report the change event back to System-Control 22.
According to embodiments of the invention, as represented in Fig. 6, Signal-Change- Detector 28 comprises Signal Receiver 610, Signal Recorder 620, Signal Analyzer 630, Detector Control Unit 640, System-Control i/f 650, and Memory 660.
Upon reception of Detect-Change-Message from System-Control 22 via the System- Control i/f 650, the Detector Control Unit 640 stores in Memory 660 the parameters of the request, i.e. Signal-Type, Measured-Property, Minimal-Change, Time-Window-Size, and others. See parameters described above.
Detector Control Unit 640 instructs Signal Recorder 620 to start recording signals that are expected from Signal Receiver 610.
Detector Control Unit 640 instructs Signal Analyzer 630 to expect a Recording- Available-Message from Signal Recorder 620, and to analyze the recorded signals according to the parameters Measured-Property, Minimal-Change and Time-Window- Size.
Detector Control Unit 640 instructs Signal Receiver 610 to start detecting signals of type Signal-Type (parameter) and forward them to Signal Recorder.
According to embodiments of the present invention, signal analysis comprises measuring the Measured-Property, calculating the average within Time-Window-Size, comparing to the value of the previous period, and reporting in case of a change larger than Minimal-Change. Signal-Change-Detector 28 continues working (receiving, recording, analyzing signals) until Signal Analyzer detects a change. At that point Detector Control Unit 640 is informed of the change, Detector Control Unit 640 forwards a Change-Detected- Message to System-Control 22 via System Control i/f 650 and stops operation of Signal Receiver 610, Signal Recorder 620 and Signal Analyzer 630.
DATA MODELS
DB1 data model
DB1 is similar to other IR or RF universal remote control databases. It is commonly used for programming standard universal remote controls.
DB1 Tables and Fields:
Target-Devices-Table
Target-Device-Name (key)
Target-Device-Type (e.g. TVs, STBs, Air-Conditions, other Smart Home
Appliances)
Target-Device-Code
Target-Device-Codes-Table (implementing Target-Set-of-Commands-and-Signals) Target-Device-Code (compound kev1). (compound kev2) Command-Name (compound kev1)
Command-description (compound kev2) Command-Signal
Macro-Commands-Table Macro-Command-Name ( compound kevh Basic-Command-Order (compound kev1) (e.g. 1 , 2, 3) Target-Device-Type
Basic-Command-Name (copy of one of the Command-Names, or a timeout) Note: Delay-Device is the name of a fake Target-Device-Type used to assist in designating timeout commands which are used by Macro-Command-Names. The Basic-Command-Names in the format of Tabc (e.g. T200, T500) designate timeout commands (e.g. of 200ms, 500ms respectively).
DB1 Example
Following is a small example of populated tables of DB1 , which may help understand this invention.
Target-Devices-Table :
Figure imgf000038_0001
Target-Device-Codes-Table:
Figure imgf000038_0002
Figure imgf000039_0001
Macro-Commands-Table:
Figure imgf000039_0002
Figure imgf000040_0001
DB2 data model
DB2 is a database which includes information required in order to fully automatically program an Advanced-Universal-Remote-Control.
It is linked to data in DB1 by the Target-Device-Type, Target-Device-Codes, and Command-Names fields.
All fields in DB2 are populated based on information which is publicly available (e.g. PayTV operators sites, Nielson publications), or defined by the System Operator, or forwarded by the User of The-Remote (see Remote-Customizations below).
The method for populating most fields in DB2 is self-explanatory, by name of the field. Other fields have explanation comments next to them.
DB2 Tables and Fields:
Advanced-Universal-Remote-Controls-Table Remote-Model-I D (compound kevl )
Operating-Mode (compound kev1) (multiple Operating-Modes may be supported by each remote model)
Operating-Mode-Required-Commands-Set-ID (operator defined IDs) Buttons-L&F-Mapping-ID Buttons-Commands-Mapping-ID Operating-Mode-Required-Commands-Sets-Table
Operating-Mode-Required-Commands-Set-ID ( compound kev1) (per each Operating-Mode of a remote model)
Target-Device-Type ( compound kev1)
Command-Name ( compound kev1)
Buttons-L&F-Mappings-Table
Buttons-L&F-Mapping-ID ( compound kevh
Button-ID ( compound kev1)
Button-Characteristics (positions, sizes, colors, texts, etc.)
Button-Description (description text, help text) Buttons-Commands-Mappings-Table
Buttons-Commands-Mapping-ID ( compound kev1)
Button-ID ( compound kev1)
Target-Device-Type
Command-Name Target-Device-Codes-Stats-Table
Target-Device-Code ( compound kevh
Geo-Location-ID (compound kev1)
Popularity (%) Signal-lnfluencing-Commands-Table
Target-Device-Type (compound kev1)
Signal-lnfluencing-Command (compound kev1)
Signal-Trial-Duration Signal-Type
Measured-Property
Minimal-Change
Time-Window-Size
Counter-Command-Name
TV-Operators-Lineup-and-popularity-by-Geo-Location-Table
Operator-ID ( compound kev1)
Geo-Location-ID (compound kevi)
Operator-Name
Operator-Description
Operator-popularity-in-Geo-Location
Channel-lineup-in-Geo-Location (ordered list of {Channel-ID, Channel-Number}) Channels-Table
Channel-ID (key)
Channel-name
Channel-description
Channel-logo
Channel-category
Channel-Popularity-Per-Operator-and-Location-Table
Operator-ID (compound kev1)
Geo-Location-ID (compound kev1)
Channel-ID (compound kev1)
Channel-Popularity Geo-Locations-Table (All world regions which are supported by the System) Geo-Location-ID (key) Coordinates-Defining-Geo-Location Geo-Location-description Streaming and Web Sites-Table Site-ID (key) URL (key)
Goto-Site-Command-Name Description Logo
Category
Popularity-list (sorted list of pairs {Geo-Location-ID, Percentage}) Remote-Customizations-Table Remote-ID (key) Overwritten-Field-ID (assume all DB2 fields, e.g. Button-Characteristics, have
IDs)
Customization-Data (by User)
DB2 Example Following are some partially populated tables of DB2; they will help the reader better realize the structure and nature of these tables.
Advanced-Universal-Remote-Controls-Table:
Figure imgf000043_0001
Figure imgf000044_0001
Operating-Mode-Required-Commands-Sets-Table:
Figure imgf000044_0002
Figure imgf000045_0001
Target-Device-Codes-Stats-Table:
Figure imgf000045_0002
Signal-lnfluencing-Commands-Table:
Figure imgf000045_0003
Runtime Calculation-Data-Structures Following is a description of one embodiment of Calculation-Data-Structures (runtime data structures), which are helpful in resolving the Operating-Mode-Required- Commands-Sets of The-Remote, for controlling a single Target-Device of Target- Device-Type. The use of the Calculation-Data-Structures is initialized when moving to the next required Target-Device-Type (See Fig. 4 of drawings).
Once the process is completed for all Target-Device-Types, all Required-Commands- and-Signals have been forwarded to The-Remote, and a fully automatic setup has been achieved. Calculation and population of all required fields is explained below.
The following variables are set (here using examples), prior to each population and use of the Calculation-Data-Structures:
Current-Model-ID = 02 (provided by The-Remote to be programmed).
Current Geo-Location-ID = GL02 (provided by the Global Positioning module 590 of the System-Control, based on location of The-Remote to be programmed;
Current-Target-Device-Type = TV (retrieved from DB2 one after the other)
Calculation-Data-Structures:
Relevant-Target-Device-Codes data structure: Relevant-Target-Device-Code (key) (e.g. all TV models which initially are in the
Candidate-Devices list)
Geo-availability (% popularity of this Target-Device-Code, e.g. the number of TV models in the Geo-Location of the currently programmed remote).
Candidate-Device (Initially all set to Y; updated after each Signal-lnfluencing- Command is tested). Signal-lnfluencing-Commands data structure:
Signal-lnfluencing-Command-Name (key) (Name of the Command, e.g. MUTE)
Command-Test-Order (key) (The ordinal place of this Signal-lnfluencing- Command in the testing order, e.g. 1 , 2, etc. Population explained below) Resolved-Signal (The successful end result for this Command-Name)
Command-Signals data structure:
Command-Signal (key) (for the current Signal-lnfluencing-Command)
Signal-Usage (percent of times this Command-Signal is used by the current Signal-lnfluencing-Command across all Relevant-Target-Device-Codes.
Important note: More than a single Target-Device-Code may use the same Command-Signal).
Signal-Test-order (key) (The ordinal place of this Command-Signal in the testing order; highest Signals-Usage gets first place, lowest Signals-usage gets last place).
Tested (Y/N, has this Command-Signal been tested so far; indicating progress of testing).
Example of populated Calculation-Data-Structures Following is an example of populated Calculation-Data-Structures, in order to further clarify their usage.
All are populated only after Target-Device-Type, Geo-Location, Model-ID are set, e.g.: Current-Target-Device-Type = TV Current Geo-Location-ID = GL02 Current-Model-ID = MOD007 Relevant-Target-Device-Codes data structure example:
Geo-availability - Percentage (%) of TVs using this same set of Signals (for all commands) in Geo-Location-ID GL02.
Some Candidate-Device fields are set to N after first Command (e.g. MUTE) has been resolved (initially all were set to Y).
Figure imgf000048_0001
Gateway
(NEC1 96 CG1)
Figure imgf000049_0001
Signal-lnfluencing-Commands data structure example:
e.g. For Device -Type = TV, after first command, MUTE, has been resolved
Figure imgf000049_0002
Command-Signals data structure example:
Example for Signal-lnfluencing-Command = MUTE. The data structure view after testing of the second signal (MU01) was a success. Note that signals ordered 3 and 4 below will never get to be tested, and their respective Relevant-Target-Device-Codes have been removed (marked with N) from the Candidate-Device list in Relevant-Target- Device-Codes data structure above.
Command-Signals data structure
Figure imgf000049_0003
Figure imgf000050_0001
Note that prior to a successful test (not the case presented in these exemplary tables), Tested=N (the initial state for all Command-Signals) indicates that this
Command-Signal has not yet been tested; this Command-Signal represents devices (Relevant-Target-Device-Code) which are still in the Candidate-Devices list.
Detailed explanation on how some fields of the Calculation-Data-Structures are populated
Relevant-Target-Device-Codes data structure:
Initialization:
When starting the programming process, all populated Relevant-Target-Device-Code make up the initial Candidate-Devices list (marked with Y).
Population process Relevant-Target-Device-Code: Based on the Remote-Model-ID (provided by The- Remote to be programmed), and all its Operating-Mode-Required-Commands-Set-IDs (from DB2:Advanced-Universal-Remote-Controls), all Target-Device-Types are retrieved from DB2: Operating-Mode-Required-Commands-Sets. For each Target- Device-Type, all matching Target-Device-Codes are retrieved from DB1 :Target-Device- Codes (expecting less Target-Device-Codes than Target-Devices) and populate the Relevant-Target-Device-Code fields.
Geo-availability: Based on the Geo-Location which is provided by The-Remote being programmed, the popularity (%) of each Relevant-Target-Device-Code is populated from DB2:Target- Device-Codes-Stats.
Candidate-Device: Initially, when updating Current-Target-Device-Type, all set to Y.
Each time a Command-Signal fails a test, all associated Relevant-Target-Device-Codes are set to N (removed from the Candidate-Devices list).
Each time a Command-Signal is resolved, all non-associated Relevant-Target-Device- Codes are set to N (removed from the Candidate-Devices list).
Signal-lnfluencing-Commands data structure:
Based on Target-Device-Type (explained above under Relevant-Target-Device-Code), all Signal-lnfluencing-Commands are retrieved from DB2:Signal-lnfluencing- Commands:Signal-lnfluencing-Command, e.g. MUTE, VOL-UP Command-Test-order:
The ordinal place of this Signal-lnfluencing-Command in the testing order, e.g. 1st, 2nd.
The Command-Test-order values are calculated (Fig. 4 step 410) following each population of the Calculation-Data-Structures (Fig. 3 step 325). The calculation is based on the Current-Target-Device-Type, the popularity of relevant target-devices (i.e.
relevant Command-Signals for each relevant Command) in the current Geo-Location- ID, according to the formula explained below (see below "Description of the algorithm defining the Command-Test-order values of Signal-lnfluencing-Commands data structure").
Resolved-Signal: Runtime storage for the signal found and verified by the described method (Fig. 4) as controlling the Current-Target-Device-Type for the current Signal-lnfluencing-Command. Command-Signals data structure:
Command-Signal:
A signal implementing the Signal-lnfluencing-Command for this Target-Device-Code. Based on Signal-lnfluencing-Command name, Command-Signals of all Target-Device- Codes are retrieved from DB1 :Target-Device-Codes:Command-Signal
Signals-usage:
The popularity (%) of each of the Command-Signals in the Geo-Location. For each Command-Signal, go over Relevant-Target-Device-Codes table and set the
accumulated percent (%) of Geo-availabilities which use this Command-Signal. Signal-Test-order:
The ordinal place of this Command-Signal in the testing order. Going over all Signals- usage values, sort all Command-Signals so that first place (1) is set to a Command- Signal with the highest likelihood to influence the Target-Device, last place (4 in above example) is set to a Command-Signal with the lowest likelihood to influence, and all others are set accordingly.
The likelihood of a specific Command-Signal to influence the Target-Device is determined by:
A) Statistical information regarding popularity of each Target-Device-Code (which uses this specific Command-Signal) in the Current-Geo-Location (i.e. popular TV models in this area).
B) Total percentage of each Command-Signal used by all Candidate-Devices (since different Target-Device-Codes may use an identical Command-Signal for some Command-Names).
Note that the testing order of signals is repeatedly calculated, during programming, for each Signal-lnfluencing-Command. The testing order depends on:
A) The Geo-location in which programming is taking place B) The percentage breakdown of the Candidate-Devices list prior to testing of each Signal-lnfluencing-Command, which in turn is dependent on the results of previously tested Signal-lnfluencing-Commands.
Tested:
Y/N, has this Command-Signal been tested so far. Set by the system during execution, indicating progress of testing.
Prior to running a successful test, Tested=N (initial state for all commands) indicates that this Command-Signal is representing a device (Relevant-Target-Device-Code) which is still in the Candidate-Devices list.
Comment regarding next steps, following use of the Calculation-Data-Structures for the Current-Target-Device-Type:
Once all Resolved-Signals for the Current-Target-Device-Type are identified, they are forwarded to The-Remote being programmed.
System will continue working on the next required Target-Device-Type (based on DB2:Advanced-Universal-Remote-Controls:Operating-Mode-Required-Commands-Set- ID, taken from DB2:Operating-Mode-Required-Commands-Sets:Target-Device-Type).
Description of the algorithm defining the Command-Test-order values of Signal- lnfluencing-Commands data structure:
This algorithm is executed (Fig. 4 step 410) following each population of the
Calculation-Data-Structures (Fig. 3 step 325).
The algorithm defines the execution order, for all Signal-lnfluencing-Commands relevant to the current Target-Device-Type, as follows:
For each such command, the COST for executing this command is defined as the average time it takes to resolve this command (the time is takes to identify the Signal implementing this command). The command with the minimal COST will be executed first, the command with the maximum COST will be executed last; all other commands will be ordered according to their COST, lower COST first, higher COST later.
Rationale: Each resolved command reduces significantly the number of Candidate-Devices.
The sooner we get to a single Candidate-Device, the sooner we'll complete our search for the Target-Device.
Hence we want to minimize the number of Candidate-Devices by investing the minimal COST (time) possible. Calculating the COST of each command:
Cost of a specific command (i.e. time for resolving this command) = {Average number of trials (signals) for this command} multiplied by {signal-trial-Duration for each signal} = A*D
Obviously, the signals of each command will be tried according to the order of their popularity, most popular first, since we want to complete our search as soon as possible.
Calculating A - the Average number of trials (signals) for this command
n - The number of signals implementing this command in the relevant geo location p(i) - The probability of signal i appearing in the relevant geo location
A = 1 *p(1 ) + 2*p(2) + .... + n*p(n)
Explanation: Each signal contributes to the "average number of trials" the number of trails "used" until this signal is discovered (i.e. 1 , 2,...n), multiplied by the probability of this signal appearing (i.e. p(1), p(2)...p(n)).
D = Trial-duration for each command signal = value set by operator in DB2 (based on prior experience)
Examples of Trial-duration D:
- checking one signal of MUTE (of TV) takes 50 ms - checking one signal of VOL-UP (of TV) takes 150 ms
- checking one signal of "beep" (of AC) takes 100 ms
.Example for calculating Average number of trials ( A) for the MUTE command:
A = 1*p(1) + 2*p(2) + .... + n*p(n)
Based on the first 3 columns of the MUTE Command-Signals data structure provided below, Signal Contribution to Average of each Command-Signal is the result of multiplying column 2 (p(i) in above formula) by column 3 (i in above formula).
First 3 columns of the MUTE Command-Signals data structure Average:
Signal Contribution to Average
0.5
0.5
0.2
0.6
Figure imgf000055_0001
Average number of trials: 1.8
Average number of trials is the sum of the values of column 4 (Signal Contribution to Average).
Finally, the COST of MUTE will be: COST=A*D=1.8*50=90ms It will be appreciated that the scope of the claimed invention is defined only by the appended claims; the invention cannot be limited by the described in other sections of this application.

Claims

1. A system for automatically programming at least one universal remote control,
comprising:
at least one universal remote control device;
at least one database storing data related to at least one target device type which may be controlled by said at least one universal remote control device and data required for automatically programming said at least one universal remote control device;
at least one transmitter configured to transmit at least one command signal towards at least one target device;
at least one signal change detector configured to automatically detect changes in output signals of said at least one target device; and
a system control unit communicating with said at least one universal remote control device, said at least one transmitter and said at least one signal change detector, said system control unit connected with said at least one database, said system control unit configured to execute automatic programming of said at least one universal remote control device.
2. The system of claim 1 , wherein each one of said at least one universal remote
control device is configured to operate in at least one operating mode.
3. The system of claim 2, wherein each one of said at least one universal remote
control device comprises, for each one of said at least one operating mode, mapping of buttons to command names.
4. The system of claim 2, wherein each one of said at least one universal remote
control device comprises, for each one of said at least one operating mode, mapping of soft buttons to buttons characteristics.
5. The system of claim 1 , wherein the data stored in said at least one database
comprises target device codes and corresponding target device types, target device names, command names, command signals and command descriptions.
6. The system of claim 1 , wherein the data stored in said at least one database
comprises:
at least one universal remote control device model ID; at least one operating mode corresponding to each one of said at least one universal remote control device model ID;
at least one target device code;
usage statistics of each target device code per geo location; and signal influencing commands comprising parameters required for detecting signal change.
7. The system of claim 6, wherein said at least one database further comprises data related to TV operators;
said data related to TV operators describing each of said TV operator's channel lineups, comprising: channel name, channel description, channel logo channel category and popularity statistics of channel per geo location.
8. The system of claim 7, further configured to automatically program favorite channel buttons using said popularity statistics of channel per geo location and per TV operator.
9. The system of claim 6, wherein said parameters comprise: signal type, measured property, minimal change, time window size and counter command name.
10. The system of claim 1 , wherein at least one of said at least one database, system control unit, signal change detector, transmitter and at least one universal remote control device are embodied as at least one application on a mobile computing device.
11. The system of claim 1 , wherein at least one of said at least one database, system control unit, signal change detector, transmitter and at least one universal remote control device are embodied as at least one application on one of a home computing device, an office computing device and an industrial computing device.
12. The system of claim 1 , wherein at least one of said at least one database, system control unit, signal change detector and transmitter are embodied as an integral part of said at least one universal remote control device.
13. The system of claim 1 , wherein at least one of said at least one database, system control unit, signal change detector and transmitter are embodied as an integral part of one or more target devices.
14. The system of claim 1 , wherein at least one of said at least one database, system control unit, signal change detector, transmitter and at least one universal remote control device are embodied as a stand-alone device.
15. The system of claim 1 , wherein said at least one database, system control unit, signal change detector, transmitter and at least one universal remote control device are packaged in any packaging combination.
16. The system of claim 1 , wherein said at least one database reside in one of a local storage unit and a remote storage unit.
17. The system of claim 1 , wherein said at least one universal remote control device comprises a plurality of universal remote control devices and wherein said system is configured to automatically program in parallel said plurality of universal remote control devices.
18. The system of claim 1 , wherein each one of said at least one universal remote
control device comprises a universal remote control model ID, a unique serial number and at least one set of logical elements, each set of logical elements configured to implement a given operating mode and to control one or more target device types , said at least one set of logical elements comprising at least one of:
a plurality of commands comprising all the commands for implementing said given operating mode in said universal remote control model ID, each command associated with a command name and with a command signal;
a plurality of buttons, each designated by a button ID;
buttons command mapping configured to map said plurality of buttons to a plurality of command names and command signals, said buttons comprising soft buttons;
a plurality of look and feel characteristics of said soft buttons; and buttons look and feel mapping configured to map each one of said soft buttons to said look and feel characteristics, wherein said universal remote control device is configured to receive said at least one set of logical element from said at least one database.
19. The system of claim 18, wherein said commands comprise basic commands and macro commands, said macro commands comprising a sequence of at least two basic commands.
20. The system of claim 1 , wherein said system control unit comprises:
a processor;
control memory comprising run-time calculation data structures configured to be populated with data from said at least one database, said data relating to target devices;
at least one command transmit interface configured to communicate between said processor and said at least one transmitter;
at least one signal change detector interface configured to communicate between said processor and said at least one signal change detector;
a database interface configured to retrieve data from said at least one database;
at least one programming interface configured to send commands, command signals and look and feel data from said control memory to said at least one universal remote control device;
at least one indicator interface configured to indicate the status of ongoing programming of said at least one universal remote control device;
and
a geo location module.
21. The system of claim 20, wherein said system control unit further comprises internet connection means.
22. The system of claim 1 , wherein each one of said at least one signal change detector comprises:
change detector memory;
a signal receiver configured to receive said output signals from said at least one target device;
a signal recorder configured to receive said output signals from said signal receiver and record them in said change detector memory; a signal analyzer configured to analyze said received output signals according to predefined parameters;
a detector control unit configured to control operation of said signal receiver, said signal recorder and said signal analyzer; and
a system control interface configured to communicate between the signal change detector and said system control unit.
23. The system of claim 22, wherein said predefined parameters comprise measured property, minimal change and time window size.
24. The system of claim 1 , wherein said data required for automatically programming said at least one universal remote control device comprises data related to one or more operating modes and one or more target device types.
25. The system of claim 1 , wherein said at least one target device type comprises at least one of the group consisting of: TV, Display, Projector, Set-Top-Box (STB), Streamer, Speakers, Amplifiers, Radios, Air-Conditions, Fans, Lights, Shades, Cameras and Smart Home devices.
26. The system of claim 1 , wherein the data stored in said at least one database
comprises a streaming and web sites table.
27. The system of claim 1 , wherein the data stored in said at least one database
comprises a remote customization table.
28. The system of claim 1 , wherein said automatic programming is configured to be done without human intervention.
29. The system of claim 1 , wherein said at least one universal remote control device comprises a plurality of universal remote control devices and wherein at least one of said plurality of universal remote control devices has a model ID different than the model ID of the other universal remote control devices in said plurality.
30. A method of automatically programming a universal remote control device,
comprising:
transmitting at least one basic command signal toward at least one target device to be controlled by said universal remote control device, said at least one basic command signal configured to modify the state of said target device; detecting at least one change in said at least one target device's at least one output signal in response to said sent at least one basic command signal; and
programming said at least one command in said universal remote control device for controlling said at least one target device.
31. The method of claim 30, further comprising obtaining at least one operating mode of said universal remote control, wherein said at least one target device comprises a target device type; said at least one basic command signal belongs to one signal influencing command for said target device type; and said programming comprises programming said at least one command for said universal remote control device for controlling said at least one target device.
32. The method of claim 30, wherein said transmitting at least one basic command
signal comprises transmitting in a calculated order configured to minimize said programming time.
33. The method of claim 30, wherein said detecting changes comprises identifying the basic command signal that caused said changes.
34. The method of claim 30, further comprising obtaining look & feel buttons data for said programmed at least one command.
35. The method of claim 30, wherein said at least one target device and said at least one basic command signal are selected from a database.
36. The method of claim 30, wherein said automatic programming is done without
human intervention.
37. The method of claim 31, wherein said at least one signal influencing command is selected from a database, based on a calculated order configured to minimize said programming time.
38. The method of claim 31 , further comprising calculating an order of said signal
influencing commands using cost related with executing each one of said signal influencing commands
39. The method of claim 32, wherein said at least one basic command signal order is calculated during said programming.
40. The method of claim 37, wherein said at least one signal influencing command order is calculated during said programming.
41. The method of claim 39, wherein said calculating comprises using data related to the popularity of devices of said target device type in a geo-location associated with said universal remote control device.
42. The method of claim 38, wherein said cost comprises average time to resolve each one of said signal influencing commands.
43. The method of claim 42, wherein said order comprises executing signal influencing commands with lower cost first.
44. The method of claim 41 , said at least one command signal order comprises first executing command signals with higher popularity in said geo-location.
45. A database for use with a system comprising an automatically programmable remote control device, said database storing data related to at least one target device type which may be controlled by at least one universal remote control device and data required for automatically programming said at least one universal remote control device, comprising:
at least one universal remote control device model ID;
at least one operating mode corresponding to each one of said at least one universal remote control device model ID;
at least one target device code and corresponding at least one target device type; at least one set of command names and related command signals which control said at least one target device;
usage statistics of said at least one target device code per geo location; and
signal influencing commands comprising parameters required for detecting change in output signal of said at least one target device.
46. The system of claim 45, wherein said database further comprises data related to TV operators; said data related to TV operators describing each of said TV operator's channel lineups, comprising: channel name, channel description, channel logo channel category and popularity statistics of channel per geo location.
47. The system of claim 45, wherein said parameters comprise: signal type, measured property, minimal change, time window size and counter command name.
48. The system of claim 45, wherein said database further comprises data related to streaming and web sites, comprising: site ID, site URL, site description, site logo, site category and popularity statistics of site per geo location.
49. The system of claim 45, wherein said database further comprises data related to customization of said remote control device, comprising: remote ID, customized field and customization data.
PCT/IB2017/054639 2016-08-31 2017-07-30 Fully automatic programming of an enhanced universal remote control WO2018042273A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201662381639P 2016-08-31 2016-08-31
US62/381,639 2016-08-31

Publications (2)

Publication Number Publication Date
WO2018042273A2 true WO2018042273A2 (en) 2018-03-08
WO2018042273A3 WO2018042273A3 (en) 2018-05-11

Family

ID=61301579

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2017/054639 WO2018042273A2 (en) 2016-08-31 2017-07-30 Fully automatic programming of an enhanced universal remote control

Country Status (1)

Country Link
WO (1) WO2018042273A2 (en)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5548346A (en) * 1993-11-05 1996-08-20 Hitachi, Ltd. Apparatus for integrally controlling audio and video signals in real time and multi-site communication control method
US7586398B2 (en) * 1998-07-23 2009-09-08 Universal Electronics, Inc. System and method for setting up a universal remote control
US7046161B2 (en) * 1999-06-16 2006-05-16 Universal Electronics Inc. System and method for automatically setting up a universal remote control
US20040169590A1 (en) * 2002-03-01 2004-09-02 Universal Electronics Inc. System and method for using appliance power awareness to select a remote control command set
US8682853B2 (en) * 2008-05-16 2014-03-25 Paraccel Llc System and method for enhancing storage performance in analytical database applications
US8508482B2 (en) * 2009-11-30 2013-08-13 Neil Van der Byl Programmable remote control
US20160019779A1 (en) * 2014-07-17 2016-01-21 Universal Remote Control Command set selection in a handheld remote control

Also Published As

Publication number Publication date
WO2018042273A3 (en) 2018-05-11

Similar Documents

Publication Publication Date Title
US20190174196A1 (en) System and method for saving and recalling state data for media and home appliances
US7944370B1 (en) Configuration method for a remote control via model number entry for a controlled device
US7375673B2 (en) System and method for universal remote control configuration
US9830808B2 (en) Controllers with adaptable interfaces
US20070124772A1 (en) Universal parallel television remote control
US8509400B2 (en) System and method for adaptive programming of a remote control
US20120068857A1 (en) Configurable remote control
US10448092B2 (en) Set-top box with enhanced content and system and method for use of same
KR101772653B1 (en) Control device and method for control of broadcast reciever
US20160241893A1 (en) Media Player Including Automatic Configuration
US9087448B2 (en) Programming a universal remote control
CN105516773A (en) Control method of television set-top box, television, remote control and television system
US20060294567A1 (en) Method of controlling remote-controlled electronic device using universal remote controller and universal remote controller thereof
US20140153927A1 (en) Detection of remote control for configuration of universal remote
US9508253B1 (en) Systems and methods for programming a remote control device
US20170034563A1 (en) Method for programming a remote control
CN103916690A (en) Smart television set remote control method and device
US9715821B2 (en) System and method for managing device controls
KR20090121525A (en) Remote controller, electronic device and control method thereof
KR20060049932A (en) Method of controlling remote-controlled electronic device using universal remote controller and universal remote controller thereof
US10847021B1 (en) Determining commands on a media device interface
CN104333792A (en) Key-value pair judging method and television
WO2018042273A2 (en) Fully automatic programming of an enhanced universal remote control
CN102638710A (en) Network television control system and method
EP4226637A1 (en) System and method for configuring input elements of a controlling device

Legal Events

Date Code Title Description
DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17845606

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17845606

Country of ref document: EP

Kind code of ref document: A2