TECHNICAL FIELD
[0001] The present invention relates to remote controlling of devices, in particular of
devices having no embedded graphical user interface or embedded graphical user interface
with limited capabilities.
BACKGROUND
[0002] There are some devices which offer sophisticated controllable functionality, but
have no embedded graphical user interface, e.g. due to their miniaturization (so that
there is no space for a dedicated screen) or operation at places inaccessible for
the user (so that the dedicated screen would be inaccessible for the user). Other
devices may have a simplified user interface, e.g. a small screen only to minimize
costs or space occupied by the screen. For such devices, there exists a need to provide
an external user interface, which could allow convenient control of the device by
the user.
[0003] There are also known devices with dedicated user interfaces, operating via dedicated
communication channels. For example, a television set may be operated by a remote
controller, which communicates with the television set at a certain infrared frequency
and sends predefined codes to invoke certain functionality of the television set (such
as change of channel or volume), wherein the remote controller may have predefined
buttons or a touch screen displaying a predefined user interface screen.
[0004] Nowadays, the number of devices used at home increases. Use of a dedicated controller
for each device is problematic for the user, because each controller may have different
user interface. Moreover, as the number of controllers increases, a controller can
be easily lost or confused with another controller. It would be more efficient to
simplify the control of devices by using a universal controller.
SUMMARY
[0005] The problems mentioned above have been solved by providing a controllable device
which has a controllable component which can be controlled via a software graphical
user interface (GUI) component, where the controllable device can send the software
GUI component to an external controller, such as to enable the navigation of the software
component via the GUI and via the input interface of the external device.
[0006] There is presented a controllable device comprising at least one controllable component.
The controllable device comprises: - memory storing a software GUI (Graphical User
Interface) component configured to provide a graphical ser interface for operating
the controllable component by commands generated in response to user navigation actions;
a communication interface configured to communicate with an external controller having
a GUI module and an input interface; and an external controller manager configured
to communicate, via the communication interface, with the external controller to:
send the software GUI component from the memory to the external controller; receive
from the external controller commands; and send the received commands to the controllable
component.
[0007] Preferably, the memory stores a plurality of software GUI components.
[0008] Preferably, the memory stores a link to a software GUI component at a remote location.
[0009] There is also presented a system for remote control, wherein the system comprises:
the controllable device as described above, the external controller comprising: a
communication interface configured to communicate with the controllable device, a
memory for storing the software GUI component; the GUI module; the input interface
module; a processor configured to operate the software GUI component to allow the
user to navigate the software GUI component using the GUI module and the input interface
module such as to allow the user to input navigation actions and to allow the software
GUI component to generate commands in response to the input navigation actions; and
a controllable device manager configured to communicate, via the communication interface,
with the controllable device to: receive the software controlling component from the
controllable device and store it in the memory; receive commands from the processor
operating the software controlling component; and send the received commands to the
controllable device.
[0010] Preferably, the external controller comprises memory configured to store a plurality
of software GUI components.
[0011] There is also presented a method for remote control of a controllable device via
an external controller, wherein it comprises the steps of: initiating (301, 302) communication
between the controllable device and the external controller; sending a software GUI
(Graphical User Interface) component from the controllable device to the external
controller; receiving at the controllable device a command from the external controller;
sending at the controllable device the received command to a controllable component
of the controllable device.
[0012] Preferably, the method further comprises the following steps performed at the external
controller: receiving and storing the software GUI component in a memory; executing
the software GUI component to display the GUI via a GUI module; receiving an input
navigation action from user via an input interface module; generating a command in
response to the input navigation action; and sending the command to the controllable
device.
[0013] Preferably, the method further comprises the step of sending operational parameters
of the controllable component to the software GUI component operating at the controller
and communicating the parameters via the GUI.
[0014] Preferably, the software GUI component is sent from the controllable device to the
external controller after receiving input demand from user.
[0015] Preferably, the software GUI component is sent from the controllable device to the
external controller automatically after initiation of the communication.
[0016] There is also presented a computer program comprising program code means for performing
all the steps of the method as described above when said program is run on a computer,
as well as a computer readable medium storing computer-executable instructions performing
all the steps of the method as described above when executed on a computer.
BRIEF DESCRIPTION OF DRAWINGS
[0017]
Fig. 1 shows one example of a system with a plurality of controllable devices and
an external controller.
Fig. 2 shows a detailed structure of the controllable device and the external controller.
Fig. 3 shows an example of the method for remote control.
NOTATION AND NOMENCLATURE
[0018] Some portions of the detailed description which follows are presented in terms of
data processing procedures, steps or other symbolic representations of operations
on data bits that can be performed on computer memory. Therefore, a computer executes
such logical steps thus requiring physical manipulations of physical quantities.
[0019] Usually these quantities take the form of electrical or magnetic signals capable
of being stored, transferred, combined, compared, and otherwise manipulated in a computer
system. For reasons of common usage, these signals are referred to as bits, packets,
messages, values, elements, symbols, characters, terms, numbers, or the like.
[0020] Additionally, all of these and similar terms are to be associated with the appropriate
physical quantities and are merely convenient labels applied to these quantities.
Terms such as "processing" or "creating" or "transferring" or "executing" or "determining"
or "detecting" or "obtaining" or "selecting" or "calculating" or "generating" or the
like, refer to the action and processes of a computer system that manipulates and
transforms data represented as physical (electronic) quantities within the computer's
registers and memories into other data similarly represented as physical quantities
within the memories or registers or other such information storage.
DETAILED DESCRIPTION
[0021] Fig. 1 shows one example of a system as described herein. There are a plurality of
controllable devices 110A, 110B, 110C, each of which can be controlled by the external
controller 120. Therefore, the user may use a single controller 120 to communicate
with each device.
[0022] In one embodiment, the software GUI component of each device 110A, 110B, 110C can
be sent to the external controller 120 when the controller appears in the vicinity
of the device. The software GUI component can be installed at the controller on request
or automatically, for example using wireless short-range transmission means whenever
a user equipped with the external controller comes close to the controllable device
to be controlled.
[0023] In another embodiment, the software GUI component of each device 110A, 110B, 110C
can be pre-installed at the memory of the controller 120 and activated to use the
particular device when the controller appears in the vicinity of the device. Alternatively,
when a plurality of devices 110A, 110B, 110C are within the communication range of
the controller 120, the user may select which device is to be controlled by a particular
software GUI component.
[0024] Fig. 2 shows a detailed structure of the controllable device 110 and the external
controller 120.
[0025] The controllable device 110 has at least one controllable component 114.
[0026] For example, when the controllable device 110 is a coffee making machine, the controllable
components 114 may be a thermostat with controllable water temperature, a pump with
controllable water flow pressure and amount, a timer with controllable infusion times
etc.
[0027] In another example, when the controllable device 110 is an audio player, the controllable
components 114 may be modules for navigating via audio files to be played or radio
stations to be listened to, or modules for changing sound parameters such as volume
or balance control etc.
[0028] In a further example, when the controllable device 110 is a television set-top box,
the controllable components 114 may be modules for navigating via television channels,
executing and navigating additional software such as electronic program guide, or
modules for changing sound or video parameters.
[0029] In yet another example, when the controllable device 110 is a washing machine, the
controllable component 114 can be a washing controller for receiving input commands
related to washing program, temperature, drying commands etc.
[0030] In another example, when the controllable device 110 is a lamp, the controllable
component 114 can be a turn on/off switch, a light intensity or color controller etc.
[0031] In yet another example, when the controllable device 110 is a shadow curtain for
a window, the controllable component 114 can be a controller for setting the times
at which the curtain has to open/close etc.
[0032] The controllable device has a memory 113 in which the software GUI component is stored.
The software GUI component can be a software module in a form of a code to be compiled
at the external device and/or in a binary form to be executed at the external device.
Alternatively, the software GUI component may be a link to an external location, for
example an Internet-accessible server, from which the actual software may be downloaded
to the external device. The software GUI component is preferably in a universal form
that can be executed in a plurality of operating systems that could be handled by
the external device. Alternatively, there may be a plurality of software GUI components
stored at the memory 113, each for a particular operating system (e.g. iOS, Android
etc). When executed at the external device, the software GUI component utilizes the
resources of the external device, such as its own GUI and input interface, to display
its functionality via the GUI and receive input from user via the input interface
and to generate commands for the controllable component 114 in response to user navigation
actions. Therefore, the device 110 does not need to have its own GUI nor control interface,
but can be controlled via the external controller 120.
[0033] The controllable device has a communication interface 111 configured to communicate
with the communication interface 121 of the external controller 120. Preferably, the
communication interface 111 is a short-range wireless interface, such as Bluetooth
or NFC (Near Field Communication) in order to avoid interference with controllers
that are located out of range. Alternatively, or additionally, the communication interface
121 may be a long-range wireless interface, such as WiFi or GSM, or a wired interface
such as Ethernet, to allow communication with a highly remote controller 120, for
example to allow the user to control a home device when the user is not at home.
[0034] An external controller manager 112 of the controllable device 110 is configured to
communicate, via the communication interface 111, with the external controller 120
to handle the procedure shown in Fig. 3. The basic features of the controller manager
112 include the functionality to send the software GUI component from the memory 113
to the external controller 120, receive from the external controller 120 commands
(generated by the software GUI component executed at the controller 120) and to send
the received commands to the controllable component 114. Therefore, the commands for
the controllable component 114 are generated by the software GUI component operating
at the external controller 120 in response to the inputs of the user via the input
interface 126 of the external controller 120, and the commands are sent from the controller
120 to the controllable device 110.
[0035] The external controller 120 is preferably a general-purpose mobile device, such as
a smartphone, a smartwatch or a tablet.
[0036] The external controller 120 has a memory 123 for storing the software GUI component.
A controllable device manager 122 is configured to operate according to the procedure
of Fig. 3, and in particular, to communicate via the communication interface 121 with
the controllable device 110 to: receive the software controlling component from the
controllable device 110 and store it in the memory 123.
[0037] The external controller 120 further comprises a processor 124 configured to operate
the software GUI component stored in memory 123 to allow the user to navigate the
software GUI component using the GUI module 125 and the input interface module 126
of the controller 120. Therefore, the user may input navigation actions via the input
interface module 126, which are then sent to the software GUI component to be interpreted
to generate particular commands for the controllable component.
[0038] For example, when the controllable device 110 is a coffee making machine, the GUI
module 125 may display various icons indicating the possibility of selecting a coffee
making action, a cleaning action, a milk frothing action, on/off action, etc - as
shown schematically on Fig. 1. The input interface module 126 may be a touch input
module for receiving input from the user by touching icons of the GUI for performing
particular actions. Upon receiving an input at a particular area of the screen, the
software GUI component determines the action to be performed and generates a corresponding
command to the controllable component, for example a command to initiate flow of water
by the pump of the coffee making machine 110. That command is then send from the processor
124 to the controllable device manager 122 to be sent to the external controller manager
112 and to the controllable component 114.
[0039] Fig. 3 shows an example of the method for remote control. First, in steps 301, 302
the controllable device 110 initiates communication with the external controller 120.
The communication can be initiated automatically whenever the devices are within a
communication range of the interface 121. Alternatively, the communication may be
initiated on demand, for example the user may input a command "search for available
controllers" at the controllable device or a command "search for controllable devices"
at the external controller. For example, the controller 120 may communicate its operating
system and parameters of the GUI module and input interface module. Based on this
information, the controllable device 110 may select an appropriate software GUI component.
In step 303, the software GUI component is sent and received in step 304 at the controller
120, wherein it is stored in memory 123. Steps 303, 304 can be initiated automatically
whenever the communication has been initiated. Alternatively, steps 303, 304 may be
initiated on demand after the communication has been initiated, for example the user
may input a command "send interface to the controller" at the controllable device
or a command "receive interface from the device" at the external controller. In case
the software GUI component is already installed (pre-installed) at the controller,
for example when the controller has been used previously to control the device and
the software GUI component has not been erased from its memory, steps 303, 304 can
be omitted. Then, the software GUI component is executed by the controller 120 to
display to the user via the GUI module 125 the options available for controlling the
device 110 in step 305 and to receive an input in step 306 from the user via the input
interface module 126. In step 307 the software GUI component interprets the received
input and generates a command for the controllable component. The command is sent
in step 308 and received in step 309 at the controllable device 110. Next, it is passed
from the external controller manager 112 to the controllable device 114 for execution.
[0040] Moreover, in step 311, the controllable component 114 may send its operational parameters
to the software GUI component operating at the controller 120 in order to allow the
component to communicate these parameters to the user via the GUI 125.
[0041] The present invention is related to a useful result of improved control of devices.
This result is concrete and tangible. Therefore, the invention as described herein
provides a useful, concrete and tangible result.
[0042] Further, the invention is applied in particular controllable devices, such as audio
players, television set-top boxes, washing machines, coffee makers, light controllers
etc, and in particular external controllers, such as smartphones, smartwatches, tablets
etc, meaning that the idea underlying the invention is not abstract and is applied
in particular improved machines. Thus the machine or transformation test is fulfilled.
[0043] It can be easily recognized, by one skilled in the art, that the aforementioned system
and method may be performed and/or controlled by one or more computer programs. Such
computer programs are typically executed by utilizing the computing resources of a
processing unit which can be embedded within various graphic processing computer systems,
such as personal computers, personal digital assistants, cellular telephones, receivers
and decoders of digital television, video display units or the like. The computer
programs can be stored in a non-volatile memory, for example a flash memory or in
a volatile memory, for example RAM and are executed by the processing unit. These
memories are exemplary recording media for storing computer programs comprising computer-executable
instructions performing all the steps of the computer-implemented method according
the technical concept presented herein.
[0044] While the system and method presented herein has been depicted, described, and has
been defined with reference to particular preferred embodiments, such references and
examples of implementation in the foregoing specification do not imply any limitation
on the invention. It will, however, be evident that various modifications and changes
may be made thereto without departing from the broader scope of the technical concept.
The presented preferred embodiments are exemplary only, and are not exhaustive of
the scope of the technical concept presented herein. Accordingly, the scope of protection
is not limited to the preferred embodiments described in the specification, but is
only limited by the claims that follow.
1. A controllable device (110) comprising at least one controllable component (114),
characterized in that the controllable device (110) comprises:
- memory (113) storing a software GUI (Graphical User Interface) component configured
to provide a graphical ser interface for operating the controllable component (114)
by commands generated in response to user navigation actions;
- a communication interface (111) configured to communicate with an external controller
(120) having a GUI module (125) and an input interface (126); and
- an external controller manager (112) configured to communicate, via the communication
interface (111), with the external controller (120) to:
- send the software GUI component from the memory (113) to the external controller
(120);
- receive from the external controller (120) commands; and
- send the received commands to the controllable component (114).
2. The controllable device according to claim 1, wherein the memory (113) stores a plurality
of software GUI components.
3. The controllable device according to claim 1, wherein the memory (113) stores a link
to a software GUI component at a remote location.
4. A system for remote control,
characterized in that the system comprises:
- the controllable device (110) according to any of claims 1-3,
- the external controller (120) comprising:
- a communication interface (121) configured to communicate with the controllable
device (110),
- a memory (123) for storing the software GUI component;
- the GUI module (125);
- the input interface module (126);
- a processor (124) configured to operate the software GUI component to allow the
user to navigate the software GUI component using the GUI module (125) and the input
interface module (126) such as to allow the user to input navigation actions and to
allow the software GUI component to generate commands in response to the input navigation
actions; and
- a controllable device manager (122) configured to communicate, via the communication
interface (121), with the controllable device (110) to:
- receive the software controlling component from the controllable device (110) and
store it in the memory (123);
- receive commands from the processor (124) operating the software controlling component;
and
- send the received commands to the controllable device (110).
5. The system according to claim 4, wherein the external controller (120) comprises memory
configured to store a plurality of software GUI components.
6. A method for remote control of a controllable device (110) via an external controller
(120),
characterized in that it comprises the steps of:
- initiating (301, 302) communication between the controllable device (110) and the
external controller (120);
- sending (303) a software GUI (Graphical User Interface) component from the controllable
device (110) to the external controller (120);
- receiving (309) at the controllable device (110) a command from the external controller
(120);
- sending (310) at the controllable device (110) the received command to a controllable
component (114) of the controllable device (110).
7. The method according to claim 6, further comprising the following steps performed
at the external controller:
- receiving (304) and storing the software GUI component in a memory (123);
- executing (305) the software GUI component to display the GUI via a GUI module (125);
- receiving (306) an input navigation action from user via an input interface module
(126);
- generating (307) a command in response to the input navigation action; and
- sending (308) the command to the controllable device.
8. The method according to any of claims 6-7, further comprising the step of sending
(311) operational parameters of the controllable component (114) to the software GUI
component operating at the controller (120) and communicating the parameters via the
GUI (125).
9. The method according to any of claims 6-8, wherein the software GUI component is sent
from the controllable device to the external controller after receiving input demand
from user.
10. The method according to any of claims 6-8, wherein the software GUI component is sent
from the controllable device to the external controller automatically after initiation
of the communication.
11. A computer program comprising program code means for performing all the steps of the
method according to any of claims 6-10 when said program is run on a computer.
12. A computer readable medium storing computer-executable instructions performing all
the steps of the method according to any of claims 6-10 when executed on a computer.