ARRANGEMENT FOR MANAGING WIRELESS COMMUNICATION BETWEEN DEVICES
An arrangement for managing bi-directional wireless communication between a controller and a plurality of controllable-devices wherein each controllable-device is able to provide operable function specific instructions to the controller as to how it would like to be operated by the controller and wherein a proximity mechanism means provides bidirectional communications over a distance of a few centimetres between the controller and the or each controllable-device.
Latest XPED HOLDINGS PTY LTD Patents:
- Remote control and remote control systems
- Arrangement for managing wireless communication between devices
- ARRANGEMENT FOR MANAGING WIRELESS COMMUNICATION BETWEEN DEVICES
- Method and apparatus for forming associations and communicating between devices
- Arrangement for managing wireless communication between devices
This application is a continuation-in-part of U.S. patent application Ser. No. 14/853,745, filed on Sep. 14, 2015, which is a Continuation of U.S. patent application Ser. No. 13/260,084 (now U.S. Pat. No. 9,136,913), filed on Sep. 23, 2011, which entered the U.S. National Stage under 35 U.S.C. §371 of International Application No, PCT/AU2010/000358 filed on Mar. 26, 2010, which claims the priority benefits under 35 U.S.C. §119(1)-(d) of Application number 2009901298 filed in Australia on Mar. 26, 2009.
FIELD OF THE INVENTIONThe present disclosure relates to the field of remote controls, and remotely operated devices and more particularly to managing the interaction between a controller and one or more controllable-devices.
BACKGROUNDMany modern pieces of household equipment come with a remote control. This allows a user to control them from a convenient location. However, as the user purchases additional appliances, this can result in them acquiring many remote controls, each directed to a specific piece of equipment. For instance, there may be a separate remote control for a television, a DVD player, a stereo, a pay television box and other appliances.
Furthermore, many modern remote controls provide a large number of functions. Although this provides greater control to the user, it sometimes causes the remote control to become both complicated and confusing.
The compounded effect of having a large number of remote controls, each with a large number of functions, substantially diminishes the convenience provided by the remote controls themselves. One existing solution is a “universal” remote control—a single remote control which can control multiple devices. A single universal remote can be used to replace a number of other remote controls.
The current state of the art can be broadly grouped into three generations of remote control technology, which are depicted in
Programming is accomplished by the user downloading appropriate control codes from a server on the Internet to a computer and then software on the computer installing the codes to the remote control. The communications medium is usually infrared and provides a one way only channel from the controller to the appliance. Furthermore the programming situation for the user is further complicated for those programmable universal remotes that are able to control several devices in pre-programmed ‘macro’ sequences. For example a sequence named “Play DVD” could be created that turns on the DVD player and the TV, changes the TV to the correct AV input for the DVD and starts the DVD playing.
Third generation remote controls are very similar to the second generation but include a learning capability where they are able to learn′ the control codes emitted from other remote controls. The communications medium is usually infrared and provides a one way only channel from the controller to the appliance.
A new remote control technology known as RF4CE is emerging. This technology improves the current state of the art in a number of ways. Firstly it replaces the infrared system with a radio frequency system that is able to penetrate through walls and carry over greater distances. Secondly, it implements a standard control profile known as CERC that includes control codes for many common audio visual appliances. An industry alliance of consumer equipment manufacturers are planning to offer appliances that conform to this standard profile. This promises a basic level of interoperability between a remote control made by one manufacturer and appliances made by another.
However the solution provided by RF4CE is still far from perfect. RF4CE uses a fixed profile system where all parties that implement a profile must agree on what features and functions are to be provided by it. For a device to be certified it must implement a profile fully. This presents many problems for manufactures.
The problems begin when the manufacturers have to agree on what functions should be included in the standard profile and which should not. Any functions that are not included in the standard profile must be put in to a vendor specific profile. For those devices that only implement the standard profile there is little or no differentiation between one manufacturer's product and the next. For those that implement a vendor specific profile in addition to the standard profile, the remote control from another vendor will not be able to issue the vendor specific command set, which is a poor situation for the user.
For a standard profile to be useful it must have a reasonably comprehensive set of commands. This presents a problem for those manufactures that want to make a low cost product. In order to drive cost down they need to implement only a small number of features, however if they do this their product cannot be certified as it will not implement all the features in the standard profile. Furthermore, when a remote that implements the standard profile is used, the low cost device will not implement all the standard features and hence not all function on the remote will work, which is annoying for the user. In effect these RF4CE remote controls are an improved second-generation technology.
Due to the limitations of the present remote control technology, the usage of remote controls is generally restricted to localised situations, i.e. the remote control remains in the same location as the appliances it controls. Users of present remote controls do not take them away from the location containing the appliances they can control because the remote control would not be in a position to control ‘foreign’ appliances unless it was reprogrammed.
Furthermore, some new devices such as popular media players have external accessories that they are able to couple with. For example the iPod can dock with many types of external accessories that are designed specifically for it such as powerful HiFi units, portable ghetto blasters, clock radio units and the like. However the problem for consumers and manufactures is that Apple tightly controls the docking interface that uses proprietary technology and is encumbered by a mechanical connector which does not facilitate remote operation.
Using such an arrangement is inflexible and requires a wired connection between controller and device or a plug-in dongle to provide wireless communication technology appropriate for remote control and moreover, the user is required to find then download software applications to make it all work.
Finally, devices that currently do not have remote controls (e.g. washing machines, dryers, ovens, lights, power points and the like) and new devices that do not exist now but will be created in the future, will benefit greatly from the ability to be controlled by and interact with a truly universal controller and for the control interface to automatically configure itself for the new appliance and to be easily extensible by the manufacturer and customizable by the user without modification to the software or hardware of the controller or the device.
It is an aim of the disclosure to reduce or ameliorate one or more of the problems and disadvantages described above and to advance the state of the art with respect to the interchange and control of information or operation between a controller and one or more electronically controllable devices.
SUMMARY OF ASPECTSIn an aspect there is a method for facilitating a proximity mechanisms between a controller device and device to be controlled by the controller device, where both the controller device and the device to be controlled have a Bluetooth Low Energy mechanism, comprising the step of adjusting a Bluetooth Low Energy (BLE) communication mechanism such that the power level and directional transmission and detection pattern are such that communication using the Bluetooth Low Energy communication mechanism is effective only when the controller device and device to be controlled are within NFC proximity range of each other. It will be understood by those skilled in the art, that for NFC technology operating at 13.56 MHz, the common operable proximity range is in the order of less than 10 cm and is dependant on many factors including the design and position of the NFC antennas within the devices. In practice it is observed that with commercially available devices, NFC operation can vary over a wide range from 10 cm down to a low as 1 cm.
In a further aspect the device acting as a controllable device will be configured to emit a signal using the adjusted power and directional magnetic induction transmission and detection pattern containing a predetermined UUID and a security key that is randomly generated for every signal emission.
In yet a further aspect a controller device having the ability to detect the low power directional BLE signal containing a pre-determined UUID and security key, the controller device is adapted to automatically and securely connect to the controllable device to be controlled without the need for user input.
Yet further in the connection is established between devices, an NDEF encoded PROXIMITY REQUEST message is sent by the controller device to the controllable device and after the controllable device has received and processed the NDEF encoded PROXIMITY REQUEST message the controllable device responds to the controller device with an NDEF encoded PROXIMITY RESPONSE message.
In a further aspect there is an arrangement for facilitating a proximity mechanisms between a controller device and device to be controlled by the controller device, where both the controller device and the device to be controlled have a Bluetooth Low Energy circuit and communication mechanism, each device comprising a unidirectional antenna, in use, connected to a low energy output of the Bluetooth Low Energy circuit.
In yet another aspect there is a device for facilitating a proximity mechanism between a first device and a second device to be controlled by the first device, where at least the first device has a Bluetooth Low Energy circuit and communication mechanism, the first device comprising a unidirectional antenna, in use, connected to a low energy output of the Bluetooth Low Energy circuit.
Illustrative embodiments of the present disclosure will be discussed with reference to the accompanying drawings wherein:
The detail below generally discloses a new and inventive remote control technology that is adapted so that a controller may control and interact with any kind of appliance or general device and that does not require the user to have to perform any setup or configuration in order for the system to operate other than a simple association between controller and self-describing device.
In the present disclosure: a ‘self-describing device’ or simply ‘device’ refers equally to an item of hardware or a software application; a mechanism refers to functionality that can be realized in either hardware or software or a combination of both; a display mechanism refers to an item that can display visual information to a user such as an LCD, touch-screen, or projection system; the first device is one having access to at least it's resource description file. This device can be realized in either hardware or software or a combination of both. Once example of the implementation of the first device is a controllable device; the second device is one having no access to a resource description file for the first device. This device can be realized in either hardware or software or a combination of both. One example of the implementation of the second device is a controller device, or simply controller.
Device 300 implements the Auto Discovery Remote Control (ADRC) Protocol and consequently contains at least one Resource Description File (RDF). Using the ADRC Protocol, controller 100 communicates with device 300 over wireless communications link 200.
In protocol step 2000 controller 100 and device 300 discover each other and subsequently form an association whereby they may freely engage in bidirectional communication.
In protocol step 2100 controller 100 receives an RDF for each sub-unit of device 300 and attempts to retrieve any resources indicated therein. Once these have been acquired, controller 100 uses information in the RDF to dynamically generate a user interface that is necessary and sufficient for controlling device 300 and to configure any handler resources required to respond to events that may be received.
In protocol step 2200 controller 100 receives the descriptive information for device 300. The descriptive information may contain items including manufacturer, model, version and link and this is provided for one or several sub-units that device 300 may implement.
In protocol step 2300 the user activates a control from the user interface which may be by issuing a voice instruction and controller 100 formulates the correct command code sequence using the associated information in the RDF and sends this to device 300, which receives the command code sequence and implements the associated command.
In protocol step 2400 device 300 sends an unsolicited event notification to controller 100 indicating that it has changed state or some other change in state has occurred. Controller 100 is able to interpret the notification using information contained in the RDF and action an appropriate response by invoking the associated handler resource.
In protocol step 2500 controller 100 and device 300 forget their association and can no longer communicate.
As introduced above the current state of the art can be broadly grouped into three generations of remote control technology, which are depicted in
The display on the controller is 110 and the user input means 120. The internet in shown generally as 600 and a portable PC is numbered 500 and a remote control being learned by the controller is referenced as 130.
It should be understood that the ensuing description is based on an embodiments where the controller and device first discover each other by way of a Proximity Touch Gesture that activates when the devices are so close that they are practically touching. Proximity based discovery is considered the preferred embodiment for consumer appliances for the following reasons: it provides the most convenient and easy to operate method for users to form associations between controllers and devices, it is a suitable ‘default’ communication channel between all devices and controllers, it enables discovery to be independent of the PAN/LAN technology implemented on the device and controller, it is a secure mechanism for exchanging sensitive information such as encryption keys and the like and it adds very little cost to the build price.
Discovery 317 In order to establish an association, device 300 must first discover controller 100.
Discovery may be achieved using several methods including:
-
- discovery mechanisms provided by PAN protocols for example the discovery feature provided by the NLME of the RF4CE protocol,
- discovery services provided on a LAN for example Avahi,
- Proximity mechanisms for example Near Field Communications (NFC), Bluetooth Low Energy, or some other inductive coupling method that enables detection and communications at very close ranges typically less than 5 cm, but the distance can vary greatly dependent on the manufacturing and engineering of the electronic elements and software that provide these mechanisms and in some instances the omnidirectional distance of effective proximity can be greater or smaller than 5 cm; optical methods such as reading a barcode, magnetic methods such as employed in a tape head, electrical methods such as One Wire and radio frequency methods such as RFID.
A preferred proximity mechanism uses an NFC based mechanism to facilitate the easy on-boarding of devices. Essentially when a controller is brought within near field proximity range of a device, they exchange information over a near field communication link which then facilitates a longer range communication link such as Wi-Fi or 802.1.5.4 to be established between them, since relevant and sufficient information is exchanged between the devices using the NFC based communication mechanism. The full on-boarding process is completed using the longer range communications link.
The problem is that this process does not work for certain remote control devices, that although they have an NFC mechanism, their operating system restricts the use of that NFC mechanism to operations under the total control of that operating system. The device known as an Apple™ iPhone™ of Apple Inc. of 1 Infinite Loop, Cupertino, Calif., U.S.A is an example of device exhibiting that situation. The reason is that Apple Inc. has chosen to prevent the use of NFC for all transactions other than for Apple Pay transactions.
To overcome this problem there is an embodiment disclosed herein which uses a unique variant of the known Bluetooth Low Energy (BLE) communication mechanism as an alternative for NFC. BLE is a suitable candidate because it is very likely to be present in all smart phones (and similar devices or portable computer like devices) and that includes the device known as the Apple™ iPhOne™. There is very likely to be no block or restriction of the Bluetooth communication mechanism because its primary function is to pair with other devices and thus facilitate receipt of a function, transmit a function or provide the ability to control one device from the other. Normal Bluetooth functionality is design to support any application within the respective devices wishing to create a connection between devices and use of BLE is a low power version of Bluetooth and thus is suitable for the intended on-boarding operation.
Thus in an embodiment, a particularly unique alternate BLE mechanism is used for providing an alternative on-boarding arrangement, because it mimics particularly desirable features of NFC, while not being NFC, in that it only operates over a very short distance, typically just a few centimetres and in a very directional manner. The electromagnetic configuration of the BLE mechanism becomes near-field like since it essentially becomes a very low power and very directional magnetic induction transmission and detection arrangement, reliant on the field strength reducing very rapidly according to the inverse cube of the distance from the induction source. This contrived and controlled property has the following benefits:
-
- 1. It is very hard for any technological means to intercept/detect the very short distance communications of near-field communication mechanism acting between two devices that are brought into proximity touch vicinity of each other and during which time they communicate using the unique BLE communications mechanism. Thus the interception/detection by another device is unable to decode potentially sensitive information, such as clear encryption keys that may be exchanged over the short distance near field mechanism link; and
- 2. The user can be sure that at the critical time when the devices (controller and controllable device) are within the proximity touch distance, that only the respective devices are the ones that will be paired, thus providing physical and visual control over this important action and consequence.
BLE on the other hand, uses the far-field which is Electromagnetic (EM) radio waves. These can propagate for many tens of meters, even with the low transmit power used by BLE equipped devices.
This means that during BLE Bluetooth pairing, the user is typically presented with a list of several near-by devices to choose from because proximity alone does not exclude possible pairing with an unwanted or un-needed device, which happens to be near enough.
Furthermore, because many Bluetooth devices only allow one to one pairing actions at a time, thus trying to pair with a device that is already paired with another controller may fail, especially when there are nearby devices, leaving the user confused, as to why pairing cannot be achieved since pairing should take place automatically and often devices do not visually confirm to the user, that the action is taking place or complete—because the devices make the assumption that they will only ever have a single other device to pair with, which clearly, is not always the case. To make the experience of BLE based on-boarding as close to that provided by NFC on-boarding, the new and innovative arrangement briefly described previously needs to be implemented.
Thus, it is an alternative embodiment of the disclosure herein to mimic NFC using, a modification to BLE, as the proximity communication mechanism for the on-boarding of devices. To make the BLE process act like the NFC as would be experienced by a user of the devices, it is first necessary to re-configure the output power of a BLE mechanism incorporated into devices.
Each BLE device in a mobile device is configurable using software to vary its output power and in this embodiment the output power is set extremely low, much lower than would be used for typical BLE operation, which is set lower than typical Bluetooth would be used.
Also software configurable is the physical configuration of the radiation pattern of the BLE antenna array, in a preferred embodiment, the antenna radiation will be controlled to be very directional, such that the effective communication pattern is narrow elongate (if it were visible the radiation pattern would appear to have the shape of a cigar). The radiation patterns are essentially the same for transmission and reception, this is known as reciprocity.
Thus the combination of these two changes to the physical configuration of BLE results in the BLE communication mechanism between devices being, a short range (say at NFC proximity range, for example, at most about 10 cm) while device antenna radiation patterns are aligned to ensure the directional patterns are aligned, such that the respective receive antenna arrays only receive magnetic energy from the respective other device. This is not an intended configuration of BLE which tends to have an Omnidirectional pattern (radiation which if visible would look like a donut with the center of the donut being the mobile device) and thus disclosure is an example of, a new use for an known device and the working of that device. This arises since the re-configuration of the known BLE arrangement is not at all efficient and would severely restrict the operation of known BLE and be the opposite to the way it is designed and intended to operate. Thus, BLE adapted in the manner disclosed herein becomes an even lower power and more directional BLE mechanism than any known BLE mechanism.
Using such an arrangement, the proposal is to exchange the same NDEF format proximity messages between the controller and the device as currently used with NFC.
One difference, in a preferred embodiment disclosed herein, is that the device acting as a controllable device will be configured to emit low power directional BLE beacons containing a predetermined UUID and a security key that is randomly generated for every signal emission. Thus, when a controller device, having the ability to detect the low power directional BLE beacon with the pre-determined UUID and randomly generated security key, such that when this type of signal is received, the controller device is programmed to automatically and securely connect to the controllable device over an encrypted BLE link without the need for user input.
Once the connection is established, a NDEF encoded PROXIMITY REQUEST message is sent by the controller device to the controllable device. After the controllable device has received and processed this message it responds to the controller device with a NDEF encoded PROXIMITY RESPONSE message. Following the receipt of this message, the controller device has sufficient information to be able to open a longer range network connection (not NFC or the adapted BLE) with the device using, for example, 802.15.4, Bluetooth, BLE, BLE Mesh, or Wi-Fi. From this point on the pairing process proceeds the same as it does when triggered by NFC.
Thus the method of facilitating proximity mechanisms between a controller device and device to be controlled by the controller device, where both the controller device and the device to be controlled have a Bluetooth Low Energy mechanism, comprises the steps of adjusting a Bluetooth Low Energy (BLE) communication mechanism such that the power level and directional magnetic induction transmission and reception/detection pattern are such that communication using the Bluetooth Low Energy communication mechanism is effective only when the controller device and device to be controlled are within 10 centimetres of each other.
In another embodiment, a ground plane is positioned behind the slot. An example is as depicted in
Adjustments to the slot geometry are required to tune the assembly which is formed by the array of conductive and non-conductive materials, which form the antenna assembly of
The typical antenna (a monopole or a dipole) is Omnidirectional (equal radiation front and back, and sides) in the h-plane, so it just has a single e-plane plot
The units on the scales depicted in all the
The slot 220 in the embodiment with reference to
Note that all antennas have reciprocity with regards the transmission and reception of electromagnetic/magnetic radiation, that is, they receive and transmit equally well.
Thus, in an embodiment, the type of antenna to be used with a modified BLE transceiver is to have directional antenna characteristics, as is illustrated primarily in
Thus to facilitate a proximity mechanisms between a controller device and device to be controlled by the controller device, where both the controller device and the device to be controlled have a Bluetooth Low Energy circuit and communication mechanism, it is an embodiment to provide each device with a unidirectional antenna, in use, connected to the low energy output of the Bluetooth Low Energy circuit, that has been controlled as described herein.
It is also use full for there to be a device for facilitating a proximity mechanism between a first device and a second device to be controlled by the first device, where at least the first device has a Bluetooth Low Energy circuit and communication mechanism, when the first device has at least a unidirectional antenna, in use, connected to the low energy output of the Bluetooth Low Energy circuit, that has been controlled as described herein.
Using the Proximity Touch Gesture method, the device and controller are able to sense when they are practically touching. Once in proximity they are able exchange information over a short range communications link. Information is passed that enables them to determine whether they have the necessary communications facilities to establish a wireless connection with each other.
Discovery 317 may also be linked (333) to disassociation 329.
Association 319Depending on the application, device 300 may require controller 100 to authenticate and vice versa. If authentication is required and completes successfully, device 300 and controller 100 exchange any information required to establish a network connection with each other. For example if the network was an RF4CE PAN, controller 100 would send a PAIR.request message to the NLME and device 300 would reply with a PAIR.response. If successful both parties will have ‘paired’ with each other and now able to communicate freely.
Provisioning 321In order to interact with device 300, controller 100 may require certain information and other resources such as data or software applications and the like. These are specified in the RDF. Provisioning is the process whereby the RDF is acquired and any other resources specified therein are acquired and installed.
Enumeration 323Enumeration is the mechanism whereby device 300 provides descriptive information for each of its sub-units to controller 100. This information includes the identity of the manufacturer, the model, the version, an optional link to where an RDF may be found and any further information as may be required by specific applications.
Enumeration 323 may also be linked (331) to usage 327.
Activation 325Some of the resources acquired during the provisioning phase may be software applications and may need to be automatically started. This is done during the activation phase.
Usage 327Once the previous phases are complete, controller 100 is able to provide the facilities required for the user to control device 300. Furthermore if device 300 is able to generate unsolicited event notifications then the facilities required by controller 100 to handle these are now in place.
Disassociation 329At some point it may be necessary to break the association between device 300 and controller 100 for example if the device is an item of AV equipment and the owner decides to sell it to another party. During the disassociation phase the previously formed association between device and controller is forgotten.
With reference to
Computer 500 supports one or more communications interfaces for example a wired network adapter 540 or a wireless network adapter 550. These communications interfaces are typically managed by the network manager 570 of the operating system installed on the computer, which makes it convenient for software applications to access network functionality provided by several interfaces. The ADRC Protocol functionality in this embodiment is implemented both as integrated circuit chip 400 and software service 510.
Integrated circuit chip 400 has two main functions. Firstly it acts as a proxy device so that the power supply unit 560 can be commanded to turn on by controller 100. This allows computer 500 to be turned on just like any other appliance. Secondly it provides a PAN communications interface to network manager 570. This allows computer 500 to become an embodiment of controller 100 by implementing ‘Soft Controller’ functionality thus allowing it to control other devices on a PAN.
Service 510 acts a proxy device so that the software applications on computer 500 can be managed by controller 100 in the same way as any other device. Service 510 accesses network communications facilities via network manager 570 and in addition it provides an Application Programming Interface (API) 530 so that software applications 520 can be developed that use the API and as a result be remotely controlled by controller 100. When software application 520 is installed on to computer 500, the installation procedure additionally registers the application with service 510. This may be achieved for example by copying the application's RDF to the profile cache area of service 510. It is a function of service 510 to make each registered software application appear to be a sub-unit of computer 500.
In the preferred embodiment service 510 will register itself with a LAN based service discovery protocol such as one of the implementations of ZeroConf, for example Avahi for Linux systems or Bonjour for Apple systems. Using its LAN interface 140 and a service discovery protocol, controller 100 can thus discover and associate with service 510 on computer 500 using conventional LAN based methods.
According to the teachings of the present disclosure, controller 100 will then request service 510 to enumerate its sub-units (in this case the registered software applications). Using descriptive information returned by the enumeration process, controller 100 then determines if it has an RDF for each sub-unit. If not, the RDF and any resources specified therein are provided, installed and activated as previously described. At this point an icon for each registered software application on computer 500 is available on the user interface presented by controller 100.
In the usage phase, device icons (representing the software applications) on the graphical user interface are able to indicate whether the software device is presently on (running) or off (not running). When the user activates an icon of a device that is off, controller 100 sends an ‘on command’ for the device to service 510 which then sets the associated software application 520 running. When the user activates the ‘off button’ for a device, controller 100 sends an ‘off command’ for the device to service 510 which then kills (stops) the software application 520. When the user activates a command button for a device, controller 100 sends the associated command sequence to service 510 which then passes this on to the associated software application 520 via API 530. Software application 520 subsequently receives the command sequence via API 530 and executes the associated command.
Software application 520 may send data in response to commands to API 530 and service 510 will deliver this to controller 100. For example if the software is a slide show application and the user sends a command to change to the next slide, software application 520 may send the speaker notes for display to the user.
Software application 520 may generate unsolicited event notifications to API 530 and service 510 will deliver these to controller 100. For example if the software is a media player application and a music track is playing then an event could be set to controller 100 every second to update an elapsed time status display.
Service 510 may also provide an interface to the operating system of computer 500. This interface may provide the ability for controller 100 to turn off the computer hardware, configure various settings of the operating system and query the state of the operating system and hardware.
With reference to
In certain PAN based networking systems, the user is required to form associations between each controller M and device N. This becomes inconvenient for the user relatively quickly because the number of associations is M*N (the product of M and N). For example if a home had 3 controllers and 5 devices (e.g. TV, DVD, STB, air conditioner and heating thermostat) then 15 associations would have to be made. This number is bordering on the limit of acceptability. If however another home had 3 controllers and 20 devices (AV equipment, light switches, blind controllers, power points and etc.) then the number of associations would be 60, which is obviously inconvenient to setup and difficult to manage.
To alleviate this situation proxy device 700 may be introduced to the remote control system. In this arrangement each device 1 . . . N forms an association with proxy 700 and each controller 1 . . . M also forms an association with the proxy. Hence there are N+M associations. Continuing the previous example, in home 1 there would now be 8 associations compared with 15 and for home 2 there would be 23 associations compared with 60. Thus the introduction of proxy 700 has greatly reduced the number of associations the user has to setup and maintain and hence the resulting system is more convenient and desirable. Proxy 700 may also behave in a similar way to service 510 described earlier, where each device 300 becomes a subunit of proxy 700. Controller 100 is thus able to use the ADRC Protocol to interact with proxy 700 which will forward on requests from controller 100 to device 300 and responses from device 300 to controller 100 as required.
With reference to
In order to coordinate the association operation one controller 100 (RC1) is designated as the coordinator and the other controller 100 (RC2) the initiate. RC1 must first have associated with the devices 300 (AP1, AP2, AP3) in the normal way. When RC2 is to be associated with devices 300, the user first associates RC2 with RC1 using the Proximity Gesture. Once this has been achieved the assisted association process continues by RC1 sending its own identifier (RC1.ID), its own private key (RC1.KEY) and association information for each of devices 300 (AP1.ID, AP2.ID, AP3.ID) to RC2 via a proximity communications link, which by nature is secure. The process continues when RC2 connects with each of devices 300 in turn and associates with them. In order to associate with Device 300, RC2 establishes a wireless communications link with it and requests association. Before association is permitted, trust must be established between Device 300 and RC2. To establish trust, Device 300 formulates random message MSG and sends it to RC2. RC2 then uses RC1.KEY to encrypt MSG using a symmetric encryption algorithm and sends its association information RC2.ID, the identity of the trusted coordinator RC1.ID and the encrypted message ENCRYPT(RC1.KEY, MSG) to device 300. Device 300 looks up its internal association information for RC1 and obtains RC1.KEY and uses it to encrypt MSG and compares the result with ENCRYPT(RC1.KEY, MSG) sent by RC2. If the values match then Device 300 has established trust in RC2 and the association between RC2 and Device 300 is established.
With reference to
In certain situations it may be beneficial to configure a group of devices that participate on a closed PAN whereby it is not ordinarily possible for a controller to discover or make associations with devices in the PAN. An example of such an arrangement is a hotel. Each room in the hotel may have a number of devices that a guest may wish to use their controller to control such as a TV, thermostat, various lights and lamps, clock radio and the like. It would not be a satisfactory situation if any controller could freely make associations with devices in the room. If this were the case then a guest in an adjacent room could ‘take control’ of their devices, but mores the point that any guest would be overwhelmed by the devices that their controller could potentially discover including devices in their own room and those in adjacent rooms and perhaps even devices in other buildings nearby. Further examples include offices and other buildings that use consumer equipment to interface with the public and need to exclude the public from interfering with that equipment.
To alleviate this situation sentinel 800 is introduced to the remote control system. Sentinel 800 is a trusted device. Using an arrangement based on that disclosed in
With reference to
In some remote control installations, it may be advantageous to restrict various operations that can occur. For example a homeowner may wish to restrict which controllers can associate with the devices in the home to only those controllers belonging to members of the family or even perhaps to only one ‘master’ controller. Furthermore, it may also be beneficial to restrict the functionality available on specific controllers. For example a parent may choose to restrict the availability of Internet access on their child's controller to certain times of the day or to limit data bandwidth to a daily quota. A user with appropriate privileges may create access control information 3000 on access control device 700. This may be accomplished using a software application specially designed for the purpose.
Once the desired access control information has been created or updated, access control device 700 sends out Access Control List (ACL) 3005 to any affected device 300 and ACL 3010 to any affected controller 100. Now when controller 100 sends command 3015 to device 300 the device checks against the appropriate ACL to determine whether controller 100 has permission to execute the requested operation.
If controller 100 does not have permission then device 300 does not action the request but instead informs the controller why the request was refused. Similarly when a user of controller 100 requests access to a particular function 3020, controller 100 checks against the appropriate ACL to determine whether the function should be provided or not.
With reference to
Some users may find it advantageous to be able to control and receive event notifications from devices in their home whilst at a remote location such as their place of work. For example if it was discovered that a user had left home without turning off the air conditioning, then they could correct the situation when they got to work, or in general from any location where they had access to the Internet.
In another example, if a device generated an event, then this could also be routed to a controller at a remote location so that the user could be alerted and consequently take some appropriate action.
Device 700 is configured to be able to communicate with devices 300 on one or more PANs. These PANs do not necessarily have to use the same technology, for example PAN1 may be a Bluetooth 3 network and PAN2 may be an ultra wide-band (UWB) network. Device 700 is also configured to connect to the Internet via some LAN networking means, for example via a Wi-Fi™ access point or a DSL modem or the like. Computer 500 is at a remote location and has a connection to the Internet.
A software application that embodies the ADRC Protocol is installed on computer 500. This ‘SoftRemote’ 100 may have been downloaded from a server on the Internet. Furthermore, device 700 implements one or more gateway means that enable it to reformat network packets and route them between one network and another.
For example, computer 500 may send a UDP/IP packet to device 700 which reformats it in to one or more Bluetooth packets and routes these to PAN1. Finally as disclosed earlier, hub 700 also acts as a proxy device so that each device 300 appears to be one of its subunits. Now ‘SoftRemote’ 100 is able to use the ADRC Protocol to interact with devices 300a, 300b and 300c via device 700 as if they were local.
With reference to
Some devices can be made more cheaply because they provide only a very basic method of interacting with the user. For example a modern DVD player has only a very basic display with a few buttons, thus it relies on a TV and remote control to provide a fully functional user interface. This technique is commonly referred to as On Screen Display (OSD). However, using OSD interferes with the viewing of the main program for any other viewers, which under some circumstances may be most annoying. It would therefore be highly desirable if any OSD menus or other status information were displayed on controller 100 instead of on the TV.
As disclosed earlier, the RDF associated with device 300 contains information that declares the functions that the device responds to, which together with associated style sheets and transformation file may also be used to describe the setup and configuration screens similar to those currently presented on the TV for configuring certain settings such as picture, sound and other setup parameters.
Due to the flexibility provided by the present embodiment, highly appealing and easy to use menu/control interfaces may be described that can be activated directly with simple gestures instead of navigating through a system of menus using cursor keys. These may also include program related information such as the title of the program, its duration and other metadata that may be available. In addition status information such as mode (e.g. play, pause, stop), running time, remaining time etc. may also be displayed and updated in real-time where controller 100 uses the API of the device as described in its RDF to query such information, and device 300 sends events to controller 100 to update status as appropriate.
With reference to
There currently exist free to air broadcast media services that are able to transmit digital information along with the actual program content. For example the Digital Video Broadcast (DVB) system is able to transmit station name, EPG and other data along with the television program content. Similarly the Radio Data Service (RDS) is able to transmit station name, program name and other data along with the FM audio program content. The operator of the free to air network is able to broadcast digital data 3200 over their network as they may choose and furthermore they are also in a position to time the delivery of such data to match the program content. This presents a beneficial arrangement when the receiving device 300 is able to receive such data and subsequently send an unsolicited event 3205 to notify controller 100. Event 3205 may contain information such as a URL, trigger condition, text or any data. When controller 100 receives event 3205 it may act on it accordingly.
For example if event 3205 contained a URL to a webpage, controller 100 may choose to render this page and display it to the user. The webpage may be a web application that allows the user to interact 3210 with server 500 and in turn for server 500 to make appropriate responses 3215 to the user. Furthermore if event 3205 contained a trigger condition then controller 100 may choose to activate an appropriate handler resource 3220 informing it of the trigger condition. This handler may then use personalization information stored in controller 100 to display highly targeted or personalized information to the user.
To put this arrangement in to context, a TV station may be broadcasting a sports event such as a football match. The match enters quarter time and the TV station sends information containing a URL over the DVB. A sports fan is watching the match on a TV that implements the present embodiment. The TV receives the information from the DVB broadcast and reformats it as an event and sends it to the remote control.
The remote control receives the event and invokes the associated handler resource. The handler opens up a popup window on the remote control screen and directs it to the URL provided in the event. The URL is that of a web application that implements an on-line ordering system for a pizza delivery company. The user is alerted to the event by an audible event tone. The user picks up the remote control and sees the pizza offer on the screen. The pizza company has a game special that seems to be good value so the user orders. Thirty minutes later the order is delivered and it is just in time for half time, so the user is most satisfied with the service provided.
With reference to
The appliance has an existing control interface which may be infrared communications or some other radio frequency type. The appliance may also have one or more HDMI ports that can respond to CEC commands. In this embodiment, gateway 900 is also able to convert communications on wireless communications link 200 from controller 100 into a form compatible with the remote control technology of the appliance. Gateway 900 also behaves in a similar way to proxy 700 described earlier in that it acts as a proxy device thus each appliance becomes a sub-unit of gateway 900. Controller 100 is thus able to use the ADRC Protocol to interact with gateway 900 and gateway 900 forwards on commands from controller 100 to one or more appliances using the correct communications medium.
For example if an appliance has an infrared remote control, gateway 900 will receive commands from controller 100 over the wireless communications link 200 and then modulate an infrared signal to communicate the command to the appliance. In another example, if an appliance has a HDMI port that supports control via the CEC command set, then gateway 900 will receive commands from controller 100 over wireless communications link 200 and then reformat the command to its corresponding CEC format and send it to the appliance via the CEC pin of the HDMI port.
In a further aspect, controller 100 is able to execute one or more software applications in addition to those that provide remote control functionality.
In order to conduct effective advertising campaigns and for product design purposes, it is important for Consumer Equipment (CE) manufacturers to understand how their appliances are used, who uses them, when they are used and so on. Such information is currently gathered by conducting time-consuming public surveys.
However, controller 100 as part of its normal usage can gather usage information automatically. For example as the user commands devices via the user interface, controller 100 can keep a record of each interaction.
The information stored for an interaction may include:
-
- Device manufacturer, model and class
- Command issued
- Date and time stamp
- Demographic information about the user such as country, postcode, age, sex (from the controller personalization details)
Controller 100 can periodically pre-process stored records and then forward these to a server on the Internet for aggregation, analysis and reporting.
The broadcast industry routinely gathers information on viewer and listener behaviour through the use of surveys. However, information can be gathered automatically by controller 100. As the user commands devices via the user interface, controller 100 can query the device for program information and keep a record of each interaction. The information stored for an interaction may include:
-
- Program name
- Broadcaster
- Date and time stamp
- Demographic information about the user such as country, postcode, age, sex (from the controller personalization details)
Controller 100 can periodically pre-process stored records and then forward these to a server on the Internet for aggregation, analysis and reporting.
With reference to
At step 2000 the user brings controller 100 into proximity range of device 300 and at some point, step 2002, device 300 detects the presence of controller 100. The situation is depicted conceptually in
At steps 2004 to 2006 the device and controller exchange ‘detection’ tokens via a proximity communications channel established between them. The detection tokens may include information such as:
-
- whether an alternate speed for the proximity link should be used;
- whether authentication is required;
- which wireless communications interfaces are supported;
- for each supported communication interface the appropriate characteristics for example for a wireless LAN interface relevant information would include: 802.1 1 version e.g. bgn, WEP or WPA security, AES-CCMP encryption and etc.
Steps 2008 and 2012 apply if device 300 requires controller 100 to authenticate. If authentication is required then an appropriate technique is employed here. In the preferred embodiment a PKI technique involving digital certificates and the exchange of randomly generated secrets would be employed. To facilitate this both the controller and the controllable device will have at least digital certificates and asymmetric encryption keys. If lesser levels of trust are acceptable for an application then other techniques may be substituted which may require symmetric encryption keys.
Steps 2010 and 2014 apply if controller 100 requires device 300 to authenticate. If authentication is required then an appropriate technique is employed here. In the most exemplary embodiment a PKI technique involving digital certificates and the exchange of randomly generated secrets would be employed. If lesser levels of trust are acceptable for an application, then other techniques may be substituted.
At step 2016 device 300 decides whether it will allow association with controller 100. This decision may be based on various criteria such as whether an association has already been formed with another controller or perhaps an access control list scheme is in use whereby only nominated controllers are allowed to associate with the device.
If the device failed authentication at step 2014, the user may still be given the opportunity to allow association to continue. This may be appropriate when the user is in a position to know something about the device that enables them to trust it.
At steps 2018 to 2020 the device and controller exchange ‘association’ tokens via a proximity communications channel established between them. The association tokens may include information such as:
-
- network identity for example the PAN ID of an RF4CE network;
- any password, passphrase, key or parameter required to connect with the other party via the PAN/LAN for example an RF4CE device that requires an encrypted link requires the Key Exchange Transfer Count to be specified;
- network address;
- network channel number;
- protocol; and
- other tokens as appropriate.
At steps 2022 to 2024 it is determined whether association tokens were exchanged successfully. If so, association can be initiated. If association is not possible the user is informed at step 2042.
At steps 2026 to 2028 device 300 and controller 100 form an association with each other whereby they can now open a communications channel and freely communicate information. For example if the network is a wireless LAN then the association can be described by: SSID, security method and key, IP address, protocol and port number.
At step 2200 controller 100 determines whether it already has an RDF to match with the descriptive information for each sub-unit returned by device 300 at step 2102. For those RDFs that it does not have, controller 100 uses steps 2202 to 2204 to attempt to retrieve the RDF directly from device 300. For those RDFs that cannot be retrieved from device 300, controller 100 uses step 2210 to attempt to retrieve the RDF from the indicated link. If no link was indicated controller 100 uses step 2212 to attempt to retrieve the RDF from a default URL. The indicated link and default URL may be on server 500 and accessed via network 600. If at step 2214 the RDF has not been obtained this is indicated to the user at step 2216.
At step 2220 controller 100 uses information contained in the RDF to determine whether any further resources are required to control the associated sub-unit of device 300. In the present embodiments, resources refer to items that may be required by the controller to perform its control function such as data, software applications and plug-ins, style sheets and the like.
If resources are indicated in the RDF and controller 100 does not already have these then using steps 2222 to 2238 it attempts to retrieve and install each of these using the sequence previously described for retrieving the RDF. Once the RDF and any other required resources have been acquired, at step 2240 controller 100 uses information contained in the RDF to generate a graphical user interface that is necessary and sufficient for controlling device 300.
A further purpose of the RDF is to specify how events generated by device 300 are to be handled. The RDF provides a means for associating device events with handling resources on controller 100 such that when an event is received it is forwarded on to the associated handler resource. Yet a further purpose of the RDF is to provide a means for describing the input and output facilities provided by device 300. For example a TV device may have two inputs AV1 and HDMI1 and one output MONITOR. This information is especially useful for applications that may be developed to help the user to setup and configure their system.
At steps 2242 to 2244 controller 100 sets running any resources that are marked in the RDF for automatic invocation.
At step 2100 controller 100 uses wireless communications link 200 to device 300 and requests the device to enumerate its sub-units. For hardware devices such as Audio Visual (AV) equipment a sub-unit is a unit of equipment that performs a well defined function for example a TV would have just one sub-unit (itself) whilst a combined TV/DVD would have two sub-units (TV and DVD). For computers such as PCs or servers a sub-unit is a software application or service. For example a PC may have a music player application and a game application installed whereas a server may offer services such as a location service and a payment service amongst others. Each subunit will require its own unique set of information in order to be controlled.
At steps 2102 device 300 enumerates though its sub-units, gathers descriptive information for each one and sends this to controller 100. The descriptive information for a sub-unit may contain:
-
- manufacturer;
- model number;
- version;
- a link to an RDF (optional); and
- other information that may be required for specific embodiments.
Steps 2300 to 2318 show how the user is now able to use the graphical user interface generated at step 2240 to control the associated device. Furthermore, steps 2400 to 2406 show how devices that are able to generate unsolicited event notifications to controller 100 can be handled by redirecting them to the associated handler resource specified in the RDF or if none was specified then simply displaying the notification to the user via the GUI.
Disassociation is the process whereby the association previously formed between device 300 and controller 100 is forgotten. Thus any restrictions or access controls that came into effect during the association are removed. This is important for certain classes of device such as AV equipment that could possibly be sold to a new owner.
At step 2500 controller 100 sends a request to device 300 to disassociate. At step 2502 the device may choose to refuse the request for example if an associated controller sent the request but that controller was not privileged for this operation. If the request is refused the user is notified by steps 2512 and 2514 and the association remains intact. If the disassociation request is accepted, steps 2504 to 2510 show how both device 300 and controller 100 remove the association each has with the other and in addition controller 100 removes the device's icon from the graphical user interface along with the RDF and any resources associated with it. Once the association is removed device 300 and controller 100 are no longer able to communicate with each other.
The descriptive information that device 300 provides to controller 100 during the enumeration phase is contained in <description> tag 1000.
The information that defines the functions provided by device 300 is contained in <controllable> tag 1010. For example <function> tag 1011 represents the command required to toggle the power to device 300. When the user interface is generated tag 1011 will be rendered using a default widget allocated for <function> tags (which might be a push button) unless this is overridden using a style sheet. When this widget is activated by the user, controller 100 will send the code ‘807F’ to device 300. If voice activated commands are supported then the words contained in the <voice> tag will activate this command. As another example <function> tag 1012 represents the command required to set the volume to a nominated level. In this case tag 1012 contains a <range> tag that indicates that this widget can generate a range of values from 0 to 100 in steps of 2. Thus when the user interface is generated tag 1012 will be rendered using a widget that can show a range such as a slider or using some other widget as may be specified in a style sheet. Other such widget input specifiers are also possible for example another useful one would be a list or enumeration where a fixed set of values can be chosen and etc.
Device functions may be grouped together using the <group> tag 1013. For example it is advantageous to be able to keep certain functions together because they are logically related such as the numeric keys 0-9 or the menu navigation keys. Furthermore most current generation remote controls have 20 to 30 buttons and if these were all presented on the same screen of controller 100 the resulting interface would be difficult if not impossible to use. However most users only use a small number of functions regularly such as power, mute, volume+/−, channel+/−, back etc. so then it is advantageous to be able to group commonly used functions on the first screen and have the other less used functions allocated to second and third and perhaps other screens as desired by the user. Those skilled in the art will also realise that the positioning of controls and groups of controls can also be specified via a style sheet.
As disclosed earlier, some devices may benefit by providing one or more handler resources to support and or enhance their operation. In addition some applications may require an element of automated control where actions can be taken by controller 100 without user input. The resources and interfaces required to support these capabilities are defined in <automation> tag 1020. Resources may include software applications, embedded scripts, interfaces, objects, data and any other item that may be required. For example <resource> tag 1021 defines a handler that is implemented using an embedded scripting language, whilst <resource> tag 1023 specifies a separately loaded plug-in application. If software is to be developed to control device 300, then the interface or API of the device must be known. Device manufacturers may define the API of their device using one or more <interface> tags. For example <interface> tag 1024 defines an interface named ‘xert’ that contains one event (that may be sent to the controller) whereas <interface> tag 1025 defines a second interface named ‘epg’ that contains a document, event and two methods. Handler resources are developed to implement one or more interfaces. The <implements> tag specifies which interfaces a handler resource implements. For example <implements> tag 1022 specifies that its associated handler resource implements the ‘xert’ interface.
As disclosed earlier it may be advantageous for controller 100 to know what the input/output capabilities of device 300 are. The <configuration> tag 1030 is provided for this purpose. From the information described in <configuration> tag 1030, controller 100 is in a position to know about the technology that implements an input or output, for example HDMI or analog composite video, the connectors used including their naming and colour coding and any special features such as supported digital protocols and the like. The ability to create a PAN, add and remove devices to and from the PAN through the proximity mechanism.
Claims
1. A method for facilitating a proximity mechanism between a controller device and a controllable device to be controlled by the controller device, where both the controller device and the controllable device have a Bluetooth Low Energy (BLE) communication mechanism, comprising the steps of:
- adjusting a BLE communication mechanism such that a power level, a directional transmission and a detection pattern are such that communication using the BLE communication mechanism is effective only when the controller device and the controllable device are within NFC proximity range of each other.
2. A method according to claim 1, wherein the controllable device is configured to emit a signal, using a selected power, a selected directional transmission and a selected detection pattern, containing a predetermined UUID and a security key randomly generated for each signal emission.
3. A method according to claim 2, wherein the controller device having the ability to detect the signal containing the pre-determined UUID and the security key; and wherein the controller device is adapted to automatically and securely connect to the controllable device to be controlled without the need for user input.
4. A method according to claim 2, wherein once a connection is established between the controller device and the controllable device, a NDEF encoded PROXIMITY REQUEST message is sent by the controller device to the controllable device; and after the controllable device has received and processed the NDEF encoded PROXIMITY REQUEST message, the controllable device responds to the controller device with a NDEF encoded PROXIMITY RESPONSE message.
5. An arrangement for facilitating a proximity mechanism between a controller device and a controllable device to be controlled by the controller device, where both the controller device and the controllable device to be controlled have a Bluetooth Low Energy circuit and communication mechanism, each device comprising:
- a unidirectional antenna, in use, connected to a low energy output of the Bluetooth Low Energy circuit.
6. A device for facilitating a proximity mechanism between a first device and a second device to be controlled by the first device, where at least the first device has a Bluetooth Low Energy circuit and communication mechanism, the first device comprising:
- a unidirectional antenna, in use, connected to a low energy output of the Bluetooth Low Energy circuit.
Type: Application
Filed: Apr 3, 2017
Publication Date: Sep 28, 2017
Applicant: XPED HOLDINGS PTY LTD (Mawson Lakes)
Inventors: John SCHULTZ (Forreston), Christopher WOOD (Beaumont), Philip CARRIG (Tranmere)
Application Number: 15/477,750