Updating software on an end device

EP4747737A1Pending Publication Date: 2026-05-27ELECTROLUX APPLIANCES

Patent Information

Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
ELECTROLUX APPLIANCES
Filing Date
2023-07-21
Publication Date
2026-05-27

AI Technical Summary

Technical Problem

Existing methods for over-the-air software updates on end devices without Internet connectivity, such as Bluetooth Low Energy accessory devices, are inefficient and require customised Device Firmware Update profiles, making it difficult to standardise and extend software updates across various devices and environments.

Method used

The method involves an end device initiating an over-the-air software update process by transmitting a software update request message to a gateway device via a short-range wireless communications network. The gateway device then obtains the necessary update data from a remote server via a different communications network and transmits it back to the end device, allowing the end device to process and apply the updates.

Benefits of technology

This approach enables more flexible and standardised over-the-air software updates for end devices, reducing the need for customised profiles and simplifying the integration of new devices into IoT environments, while allowing end devices without intrinsic Internet connectivity to manage their own updates.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2023070246_30012025_PF_FP_ABST
    Figure EP2023070246_30012025_PF_FP_ABST
Patent Text Reader

Abstract

An end device comprises: single wireless communications circuitry operable to exchange data with a gateway device via a short-range wireless communications network; and a controller operable to manage updating of software on the end device. An over-the-air software update process is initiated at the controller, by transmitting a software update request message to the gateway device via the short-range wireless communications network. In response to the transmittal, a software update response message is received from the gateway device via the short-range wireless communications network, the software update response message comprising data associated with over-the-air update of software on the end device. The received data associated with over-the-air update of software on the end device is processed at the controller.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] UPDATING SOFTWARE ON AN END DEVICE

[0002] Technical Field

[0003] The present disclosure concerns updating software on an end device. In particular, but not exclusively, the present disclosure concerns measures, including apparatus, systems, methods and computer programs, for over-the-air updating of software on an end device.

[0004] Background

[0005] Many types of end device run software, e.g. firmware, which may be updated using a wireless connection. This is known as over-the-air, OTA, updating of software. For example, a new version of software may be received at the end device from a remote server via the Internet.

[0006] However, some end devices may not include Internet connectivity. Such devices include Bluetooth™ Low Energy, BLE, accessory devices, such as Internet of Things, loT, accessory devices, which are capable of short-range wireless communications via Bluetooth™, but which are not capable of communicating with a remote server via the Internet. Examples of such accessory devices may include a wireless temperature sensor, a kitchen scales, a wireless remote control device, a carbon dioxide monitor, a gas monitor, a smoke monitor, an alarm, etc. In order to provide OTA software updates to such end devices, an intermediate device, referred to as a “gateway device”, may be used. The gateway device is capable of communicating with the accessory device via a short-range wireless communications network (e.g. Bluetooth™) and is also capable of communicating with a remote server via the Internet. The gateway device may receive a software update for the accessory device from the remote server, and feed the software update to the accessory device via the short-range wireless communications network.

[0007] It is desirable to provide improved methods of updating software on an end device.

[0008] Summary

[0009] According to an aspect of the present disclosure, there is provided a method of updating software on an end device, the end device comprising: single wireless communications circuitry operable to exchange data with a gateway device via a short-range wireless communications network; and a controller operable to manage updating of software on the end device, the method comprising, at the controller: initiating an over-the-air software update process by transmitting a software update request message to the gateway device via the short- range wireless communications network; in response to the transmittal, receiving from the gateway device via the short-range wireless communications network, a software update response message comprising data associated with over-the-air update of software on the end device; and processing the received data associated with over-the-air update of software on the end device.

[0010] According to another aspect of the present disclosure, there is provided an end device comprising: single wireless communications circuitry operable to exchange data with a gateway device via a short-range wireless communications network; and a controller operable to manage updating of software on the end device, the controller being configured to: initiate an over-the-air software update process by transmitting a software update request message to the gateway device via the short-range wireless communications network; in response to the transmittal, receive from the gateway device via the short-range wireless communications network, a software update response message comprising data associated with over-the-air update of software on the end device; and process the received data associated with over-the- air update of software on the end device.

[0011] According to another aspect of the present disclosure, there is provided a computer program product comprising a set of instructions, which, when executed by an end device, cause the end device to perform a method of updating software on the end device, the end device comprising: single wireless communications circuitry operable to exchange data with a gateway device via a short-range wireless communications network; and a controller operable to manage updating of software on the end device, the method comprising, at the controller: initiating an over-the-air software update process by transmitting a software update request message to the gateway device via the short-range wireless communications network; in response to the transmittal, receiving from the gateway device via the short-range wireless communications network, a software update response message comprising data associated with over-the-air update of software on the end device; and processing the received data associated with over-the-air update of software on the end device.

[0012] According to another aspect of the present disclosure, there is provided a system for over-the-air updating of software on an end device, the system comprising: an end device comprising: single wireless communications circuitry operable to exchange data with a gateway device via a short-range wireless communications network, and a controller operable to manage updating of software on the end device; and a gateway device comprising: first wireless communications circuitry operable to exchange data with the end device via the short- range wireless communications network; and second communications circuitry operable to exchange data with a remote server via a second, different communications network, the system being configured to: at the end device controller, initiate an over-the-air software update process by transmitting a software update request message via the short-range wireless communications network; at the gateway device: receive, via the short-range wireless communications network, the transmitted software update request message; obtain, from the remote server, via the second, different communications network, data associated with over- the-air update of software on the end device; and transmit, via the short-range wireless communications network, a software update response message comprising the data associated with over-the-air update of software on the end device; and at the end device controller: receive, via the short-range wireless communications network, the software update response message comprising data associated with over-the-air update of software on the end device; and process the data associated with over-the-air update of software on the end device comprised in the software update response message on the end device.

[0013] According to another aspect of the present disclosure, there is provided a gateway device for use in over-the-air updating of software on an end device, the gateway device comprising: first wireless communications circuitry operable to transmit and receive data via a short-range wireless communications network; and second communications circuitry operable to transmit and receive data via a second, different communications network, the gateway device being configured to: receive, via the short-range wireless communications network, a software update request message transmitted by the end device via the short-range wireless communications network, the message being formatted according to a communications protocol associated with the different communications network and encapsulated according to a communication protocol associated with the short-range wireless communications network; obtain, via the second, different communications network, a message formatted according to the communications protocol associated with the different communications network and comprising data associated with over-the-air update of software on the end device; encapsulate the obtained message according to the communication protocol associated with the short-range wireless communications network to generate a software update response message; and transmit, via the short-range wireless communications network, the software update response message comprising the data associated with over-the-air update of software on the end device. According to another aspect of the present disclosure, there is provided a Bluetooth™ Low Energy, BLE, accessory device comprising: BLE wireless communications circuitry operable to transmit and receive data via a short-range wireless communications network; and a controller operable to manage updating of software on the BLE accessory device, the controller being configured to: receive via the short-range wireless communications network, a software update message comprising data associated with over-the-air update of software on the BLE accessory device, the software update message being transmitted according to the HyperText Transfer Protocol Proxy Service, HPS, protocol; and update software on the BLE accessory device based on data associated with over-the-air update of software on the BLE accessory device comprised in the received software update message. The software can be firmware. The controller may also be configured to, prior to receiving the software update message, initiate the over-the-air firmware update process by transmitting a software update request message via the short-range wireless communications network, the software update request message being transmitted according to the HPS protocol.

[0014] According to another aspect of the present disclosure, there is provided a method of updating software on an end device, the end device comprising: single wireless communications circuitry operable to exchange data with a gateway device via a short-range wireless communications network; and a controller operable to manage updating of software on the end device, the method comprising, at the controller: receiving, via the short-range wireless communications network, a software update message comprising data associated with over-the-air update of software on the end device, the software update message being formatted according to a first communications protocol and encapsulated according to a second communications protocol supported by the short-range wireless communications network; and processing the received data associated with over-the-air update of software on the end device.

[0015] It will of course be appreciated that features described in relation to one aspect of the present invention may be incorporated into other aspects of the present invention. For example, a method of the invention may incorporate any of the features described with reference to an apparatus of the invention and vice versa.

[0016] Brief description of the drawings

[0017] Embodiments of the present disclosure will now be described by way of example only with reference to the accompanying drawings, of which:

[0018] Figure 1 is a schematic diagram of a system according to embodiments; Figure 2 is a schematic diagram of an end device according to embodiments;

[0019] Figure 3 is a schematic diagram of a gateway device according to embodiments;

[0020] Figure 4 is a message flow diagram showing a method of updating software of an end device;

[0021] Figure 5 is a flow diagram showing a method of updating software of an end device according to embodiments;

[0022] Figure 6 is a flow diagram showing a method for use in over-the-air updating of software on an end device, according to embodiments;

[0023] Figure 7 is a flow diagram showing a method for over-the-air updating of software on an end device according to embodiments;

[0024] Figure 8 is a flow diagram showing a method of updating software of an end device according to embodiments;

[0025] Figure 9 is a flow diagram showing a method of updating firmware of an end device according to embodiments;

[0026] Figure 10 is a message flow diagram showing a method of updating software of an end device according to embodiments;

[0027] Figure 11 is a schematic diagram of a system according to embodiments; and

[0028] Figure 12 is a schematic diagram of a system according to embodiments.

[0029] Detailed Description

[0030] Figure 1 shows a schematic diagram of a system 100, according to embodiments. The system 100, and / or components thereof, may be used to implement the methods described herein. The system 100 comprises an end device 110. The end device 110 may comprise an accessory device, such as a Bluetooth™ Low Energy, BLE, accessory device. In embodiments, the end device 110 comprises an Internet of Things, loT, accessory device. The system 100 also comprises a gateway device 120. The end device 110 and the gateway device 120 are operable to exchange data with one another via a short-range wireless communications network 140. For example, the end device 110 and the gateway device 120 may communicate with each other via Bluetooth™. The gateway device 120 is also operable to communicate via a second, different communications network 125. The second communications network 125 may be a different type of communications network compared to the short-range wireless communications network 140. In the embodiments shown in Figure 1, the different communications network 125 comprises the Internet, and the gateway device 120 is operable to communicate via the Internet with a remote server 130. The different communications network may comprise one or more additional networks such as a Wireless Local Area Network, WLAN. For example, it may comprise a home Wi-Fi network and the gateway device 120 may be operable to communicate via the home Wi-Fi network and the Internet with the remote server 130.

[0031] The gateway device 120 may comprise various different types of device, including, but not limited to, a mobile telephone, a personal computer, a router, or a television. In embodiments, the gateway device 120 comprises a household appliance. A household (or “domestic”) appliance may be configured to perform one or more household tasks or functions, such as cooking, cleaning, or storing food. As such, the gateway device 120 may comprise a cooking appliance, a cleaning appliance, a food storage appliance, etc. Examples of household appliances (which may be used to implement at least some of the presently-described methods) include, but are not limited to, ovens, refrigerators, freezers, air conditioning appliances, heating appliances, washing machines, tumble dryers, dishwashers, vacuum cleaners, hobs, and micro waves.

[0032] The remote server 130 is remotely located from the system 100. The remote server 130 is operable to send and / or receive data via the second communications network 125. In embodiments, the remote server 130 is operable to receive requests for software updates and to provide software updates via the second communications network 125. In embodiments, the remote server 130 comprises an over-the-air server.

[0033] Figure 2 shows a schematic diagram of the end device 110, according to embodiments. The end device 110 comprises single wireless communications circuitry 112. The single wireless communications circuitry 112 is operable to exchange data with the gateway device 120 via a short-range wireless communications network 140. “Single” wireless communications circuitry 112 is used herein to denote that the end device 110 is able to communicate via a single type of wireless communications network, namely the short-range wireless communications network 140, and is not able to additionally communicate via different wireless communications networks, such as the different wireless communications network 125. The end device 110 may be referred to as a “constrained device”, in that the end device 110 may be for handling a particular application purpose (e.g. an loT application such as a sensing application) whilst being reliant on a gateway device for connection to a wider network such as the Internet. As such, the end device 110 does not include intrinsic (or ‘built- in’) Internet connectivity. That is, in the absence of a gateway device to act as an intermediary or proxy, the end device 110 is not able to communicate with remote servers via the Internet.

[0034] In embodiments, the single wireless communications circuitry 112 comprises a wireless communications unit, such as a wireless transceiver. The transceiver may comprise a printed circuit board, PCB, including both a transmitter and a receiver, or may comprise separate transmitter and receiver PCBs. The end device 110 can send and / or receive data via the short- range wireless communications network 140 through use of the single wireless communications circuitry 112. In embodiments, the end device 110 may be monitored based on monitoring data sent via the single wireless communications circuitry 112. In embodiments, the end device 110 may be controlled based on control data received via the single wireless communications circuitry 112. In embodiments, the end device 110 can control operation of the gateway device 120 based on control data sent via the single wireless communications circuitry 112. In embodiments, the single wireless communications circuitry 112 comprises BLE wireless communications circuitry. In alternative embodiments, the single wireless communications circuitry 112 comprises Thread™ communications circuitry. Such Thread™ communications circuitry may be configured to communicate using the internet protocol, IP, in conjunction with application protocols such as HTTP, Constrained Application Protocol, CoAP, Message Queuing Telemetry Transport, MQTT, etc. In further alternative embodiments, the single wireless communications circuitry 112 comprises near-field communication, NFC, wireless communications circuitry.

[0035] The end device 110 also comprises a controller 115. The controller 115 is operable to perform various data processing and / or control functions according to embodiments, as will be described in more detail below. The controller 115 may comprise one or more components. The one or more components may be implemented in hardware and / or software. The one or more components may be co-located or may be located remotely from each other in the end device 110. The controller 115 may be embodied as one or more software functions and / or hardware modules. In embodiments, the controller 115 comprises one or more processors configured to process instructions and / or data. Operations performed by the one or more processors may be carried out by hardware and / or software. The controller 115 may be configured to implement at least some of the methods described herein. In embodiments, the controller 115 is operable to output control signals for controlling one or more components of the end device 110, such as the single wireless communications circuitry 112. In embodiments, the controller 115 is operable to receive signals from one or more components of the end device 110, and to control one or more components of the end device 110 based on such received signals.

[0036] The end device 110 may comprise more, fewer and / or different components in alternative embodiments. For example, end device 110 may comprise a memory (not shown). The memory is operable to store various data according to embodiments. The memory may comprise at least one volatile memory, at least one non-volatile memory, and / or at least one data storage unit. The volatile memory, non-volatile memory and / or data storage unit may be configured to store computer-readable information and / or instructions for use / execution by the controller 115. The end device 110 may also comprise other components for realising a function(s) of the end device, such as one or more sensors, a display device, a power source, a user interface, etc.

[0037] Figure 3 shows a schematic diagram of the gateway device 120, according to embodiments. The gateway device 120 is for use in over-the-air updating of software on an end device, such as the end device 110 described above.

[0038] The gateway device 120 comprises first wireless communications circuitry 122. The first wireless communications circuitry 122 is operable to transmit and receive data via the short-range wireless communications network 140 described above with reference to Figure 1. The first wireless communications circuitry 122 may comprise a wireless communications unit, such as a wireless transceiver. In embodiments, the first wireless communications circuitry 122 comprises a BLE wireless communications unit.

[0039] The gateway device 120 also comprises second communications circuitry 124. The second communications circuitry 124 is operable to transmit and receive data via a second, different communications network, e.g. the different communications network 125 described above with reference to Figure 1. As such, the gateway device 120 is operable to communicate both with the end device 110 (via the short-range wireless communications network) and a remote server 130 (via the second communications network). In embodiments, the second communications circuitry 124 comprises wireless communications circuitry. For example, the second communications circuitry 124 may comprise a wireless communications unit, such as a wireless transceiver. In embodiments, the second communications circuitry 124 comprises a Wi-Fi unit. In alternative embodiments, the second communications circuitry 124 is operable to perform wireless communications using a telecommunications standard technology such as long-term evolution, LTE, 4G, 5G, 6G, etc. In alternative embodiments, the second communications circuitry 124 is not configured to perform wireless communications. For example, such communications circuitry may comprise and / or involve an Ethernet connection, or other wired communications mechanism.

[0040] In embodiments, the gateway device 120 comprises a controller (not shown). The controller may be operable to perform various data processing and / or control functions of the gateway device 120, and may be embodied and / or implemented similarly to the controller 115 of the end device 110 as described above. The controller may be embodied as one or more software functions and / or hardware modules.

[0041] The first wireless communications circuitry 122 may be operable to exchange data with the second communications circuitry 124, and vice-versa. Such an exchange of data may be direct or indirect. For example, the second communications circuitry 124 may be operable to send a signal to a controller of the gateway device 120, which may in response send a signal to the first wireless communications circuitry 122. In alternative embodiments, the first wireless communications circuitry 122 may communicate directly with the second communications circuitry 124. Accordingly, the gateway device 120 does not comprise a separate controller in some embodiments.

[0042] In embodiments, the first wireless communications circuitry 122 and the second communications circuitry 124 may be implemented as a dual combination radio chip, e.g. capable of communicating via both BLE and Wi-Fi. Alternatively, the first wireless communications circuitry 122 and the second communications circuitry 124 may be implemented as separate radio chips (i.e. one chip for BLE and another chip for Wi-Fi).

[0043] The gateway device 120 may also comprise additional components. For example, the gateway device 120 may comprise a memory (not shown). The memory is operable to store various data according to embodiments. The memory may comprise at least one volatile memory, at least one non-volatile memory, and / or at least one data storage unit. The volatile memory, non-volatile memory and / or data storage unit may be configured to store computer- readable information and / or instructions for use / execution by a controller of the gateway device 120.

[0044] Figure 4 shows a message flow diagram of a method 400 of updating software of the end device 110. The method 400 shown in Figure 4 provides context for the methods of the present disclosure. The method 400 may be performed at least in part by the system 100 described above. In a first step 410, the gateway device 120 sends a software update request message to the remote server 130, to request a software update for the end device 110. The message may be sent via the Internet, for example.

[0045] In a second step 420, the remote server 130 sends a software update response message to the gateway device 120 confirming that a software update for the end device 110 is available. The response message may comprise software update data for implementing updating of software on the end device 110.

[0046] In a third step 430, the available software update for the end device 110 is accepted at the gateway device 120. Such acceptance may be performed via user input at the gateway device 120. For example, where the gateway device 120 comprises a mobile terminal, a user may be prompted to accept the software update for the end device 110 by providing user input via a user interface of the mobile terminal. In other examples, the acceptance is performed automatically, i.e. without user input, by the gateway device 120.

[0047] In a fourth step 440, the gateway device 120 sends software update data to the end device 110, thereby to update the software on the end device 110. The software update data is sent via a short-range wireless communications network. The software update data may be sent using a custom Device Firmware Update, DFU, profile, e.g. by means of a customised implementation of a Bluetooth™ DFU profile.

[0048] As such, in the example shown in Figure 4, an over-the-air software update process for the end device 110 is initiated and managed at the gateway device 120. The end device 110 itself is not active in managing or initiating the over-the-air software update process. Instead, the end device 110 merely receives the software update from the gateway device 120. The customised implementation of the Bluetooth™ DFU profile (or protocol) defines the functions and behaviour of nodes during the over-the-air software update process, where the end device 110 acts as a peripheral node that is controlled by the gateway device 120 acting as a master node. To function as such a master node, the gateway device 120 may be required to be a mobile terminal, such as smartphone, personal computer etc.

[0049] The proprietary nature of different customised DFU profile implementations makes them non-interoperable and potentially incompatible with other systems. As such, there is no standard and open solution for implementing software updates on constrained loT devices, e.g. end devices having Bluetooth™ connectivity but lacking Internet connectivity. This requires manufacturers of loT devices, e.g. Bluetooth™ accessory devices, to spend additional effort to extend, port and integrate existing DFU profile solutions for their devices, or to develop a new DFU profile each time a device’s hardware platform changes or a device is added into a new network or environment. This may make the device manufacturers dependent on vendors and may limit future solutions.

[0050] In contrast with the example process shown in Figure 4, methods will now be described which provide an improved mechanism for updating software on the end device 110. In particular, the presently-disclosed methods provide an improvement in the flexibility and standardisation for over-the-air software updates for the end device 110, which may be applied flexibly across a broad range of loT devices, including third party devices. Moreover, in at least some of the presently-disclosed methods, the end device 110 (e.g. an loT accessory device) plays a more central role in the update process, and the gateway device 120 plays a more peripheral role, in direct contrast with the DFU profile-based method shown in Figure 4. As such, the presently-disclosed methods may be extended across a greater number of use cases than the comparative method shown in Figure 4. For example, any device with both short-range wireless (e.g. Bluetooth™) and Internet access capabilities may be used as the gateway device 120 in the presently-described methods.

[0051] Figure 5 shows a method 500 of updating software on an end device, according to embodiments. The method 500 may be used for updating software on the end device 110 described above. The end device 110 comprises single wireless communications circuitry 112. The single wireless communications circuitry 112 is operable to exchange data with a gateway device 120 via a short-range wireless communications network 140. The end device 110 also comprises a controller 115 operable to manage updating of software on the end device 110. In embodiments, the method 500 is performed at least in part by the controller 115. That is, the controller 115 is configured to perform at least some of the steps of the method 500.

[0052] At item 510, an over-the-air software update process is initiated, by transmitting a software update request message to the gateway device 120 via the short-range wireless communications network 140.

[0053] At item 520, in response to the transmittal, a software update response message is received from the gateway device 120 via the short-range wireless communications network 140. The software update response message comprises data associated with over-the-air update of software on the end device 110.

[0054] At item 530, the received data associated with over-the-air update of software on the end device is processed. As such, the end device 110 is provided with a controller 115 that is operable to manage updating of software on the end device 110. It is the controller 115 of the end device 110 that initiates and manages the over-the-air software update process, in contrast with the comparative example shown in Figure 4, in which the end device 110 is merely a passive recipient of a software update and the update process is managed and initiated by the gateway device 120. This provides a more flexible and standardised process for over-the-air software updates for the end device 110, which may be applied flexibly across a broad range of loT devices and accessories. By reducing the reliance on customised DFU profiles to achieve over-the-air software updates, the process of introducing a device into a new network or environment, or modifying a device’s hardware, is made simpler. In particular, there is a reduced need for the device manufacturer to develop a new DFU profile, or to try to extend, port and integrate an existing customised DFU profile, for such a scenario. This makes the introduction of new and / or modified devices into loT environments more efficient. Moreover, the controller 115 of the end device 110 initiates and manages the over-the-air software update process, despite the end device 110 itself having no Internet connectivity (i.e. since the end device 110 is a constrained device) and relying on a gateway device to act as an intermediary for communicating with remote servers via the Internet. As such, the end device 110 is able to manage the over-the-air software update process without having to be provided with intrinsic (or ‘built-in’) Internet connectivity.

[0055] In embodiments, the software update response message indicates that an update to the software on the end device 110 is available. In some such embodiments, the processing at item 530 comprises updating software on the end device 110 based on the received data. As such, the software on the end device 110 is updated, e.g. to a latest version, based on an over-the-air software update process that is initiated by the end device 110 itself. In embodiments, updating software on the end device 110 comprises updating firmware on the end device 110. That is, the over-the-air software update process may comprise an over-the-air firmware update process. In alternative embodiments, the software update process relates to software other than firmware.

[0056] In embodiments, the software update response message comprises software update data for implementing updating of software on the end device 110. The software update data may comprise all or part of a new software package for the end device 110. For example, such a software package may be delivered to the end device 110 in a single message, or may be delivered in chunks, across multiple messages. In alternative embodiments, the software update response message does not comprise software update data.

[0057] In embodiments, the software update response message indicates that an update to the software on the end device 110 is not available. In some such embodiments, the processing at item 530 comprises ceasing the initiated over-the-air software update process for the end device 110. For example, the end device 110 may already have the latest version of the software. As such, the end device 110 may both initiate and cease the over-the-air software update process.

[0058] In embodiments, the transmitted software update request message comprises an identifier for the end device 110. In embodiments, the transmitted software update request message comprises data identifying a current version of software installed on the end device 110. Such data may enable the gateway device 120 to determine whether a software update is available for the end device 110, for example, and / or may enable the gateway device 120 to forward the software update request to an appropriate destination, e.g. a dedicated server for the software and / or for the end device 110. In alternative embodiments, the software update request message does not comprise an identifier for the end device 110 and / or does not comprise data identifying a current version of software installed on the end device 110.

[0059] In embodiments, the single wireless communications circuitry 112 comprises BLE wireless communications circuitry. As such, the end device 110 may be able to communicate with the gateway device 120 via a short-range BLE communications network. In alternative embodiments, the single wireless communications circuitry 112 comprises wireless communications circuitry other than BLE wireless communications circuitry. As such, the end device 110 does not comprise a Bluetooth™ device in some alternative embodiments.

[0060] In embodiments, the method 500 comprises a step (not shown) comprising, at the controller 115, formatting the software update request message according to a first communications protocol and encapsulating the software update request message according to a second communications protocol. The second communications protocol is supported by the short-range wireless communications network 140. This allows the end device 110 to transmit messages which may be forwarded by the gateway device 120, e.g. to a remote server. This reduces the requirements of the gateway device 120, e.g. compared to the comparative example shown in Figure 4, such that the gateway device 120 may be more peripheral to the over-the- air software update process, thereby allowing the method 500 to be performed using a wider range of gateway devices 120. In embodiments, the first communications protocol is for communicating data over the Internet. In embodiments, the first communications protocol comprises HyperText Transfer Protocol, HTTP, or HyperText Transfer Protocol Secure, HTTPS. In some such embodiments, the second communications protocol comprises the HyperText Transfer Protocol Proxy Service, HPS, protocol. For example, the software update request message may be formatted according to HTTP and encapsulated according to HPS. HPS allows Bluetooth™-enabled devices (e.g. the end device 110) to send HTTP requests and receive HTTP responses via gateways (e.g. the gateway device 120) which have access to the Internet as well as Bluetooth™ connectivity.

[0061] In embodiments, the first communications protocol comprises HTTP, HTTPS, Constrained Application Protocol, CoAP, or Message Queuing Telemetry Transport, MQTT. Alternatively, the first communications protocol comprises File Transfer Protocol Secure, FTPS, Secure Shell, SSH, File Transfer Protocol, SSH File Transfer Protocol, SFTP, or Trivial File Transfer Protocol, TFTP. In some such embodiments, the second communications protocol comprises the Internet Protocol Support Profile, IPSP, protocol. IPSP may thus be used as an alternative to HPS in some embodiments. IPSP enables the end device 110 to support IPv6 over Low power Wireless Personal Area Networks, 6L0WPAN, and to have an IPv6 address, such that IP packets can be sent and received by the end device 110. Moreover, IPSP may allow a wider range of communication protocols to be used as the first communications protocol (e.g. for the application layer) compared to HPS. For example, if HPS is used as the second communications protocol, HTTP or HTTPS may be used as the first communications protocol, whereas if IPSP is used as the second communications protocol, any of HTTP, HTTPS, CoAP, MQTT, FTPS, TFTP or SFTP may be used as the first communications protocol (i.e. as the application layer on top of IPSP). Such protocols correspond to higher level protocols in the Open Systems Interconnection, OSI, model, than IPSP, which acts at the network layer.

[0062] In embodiments, the gateway device 120 comprises first wireless communications circuitry 122 operable to exchange data via the short-range wireless communications network 140 and second, different communications circuitry 124 operable to exchange data via a second, different communications network 125. As such, the gateway device 120 is able to exchange data both via the short-range wireless communications network 140 and via the second, different communications network. This is in contrast with the end device 110, which is able to exchange data only via the short-range wireless communications network 140. This enables the gateway device 120 to act as a proxy for the end device 110, e.g. to forward software update request messages from the end device 110 via the second communications network, and / or to forward software updates received via the second communications network to the end device 110. In embodiments, the second communications network comprises the Internet. The second communications network may comprise a different network, such as an Intranet, in alternative embodiments. The second communications network may also comprise further networks, e.g. a Local Area Network, LAN. In some alternative embodiments, the gateway device 120 does not comprise the second communications circuitry. For example, in some scenarios, the gateway device 120 may itself act as a server for the end device 110. This may occur during a manufacturing phase, for example. Additionally or alternatively, the gateway device 120 may act as a backup server for the end device 110 in case the remote server 130 is unavailable.

[0063] In embodiments, the software update request comprises a network address of an over- the-air server 130 indicating a destination for the gateway device 120 to transmit a request for an over-the-air update for the end device 110 to. This enables the gateway device 120 to send the request for the over-the-air update to an appropriate destination. For example, different servers may be used to provide software updates for different types and / or models of accessory devices, or for accessory devices having different manufacturers. That is, a particular type and / or model of accessory device may have a corresponding server that is dedicated to providing software updates to that type and / or model of accessory device (and optionally to provide other resources or functionality associated with the accessory device). Accordingly, including a network address of an over-the-air server 130 in the software update request message facilitates the over-the-air software update process as managed by the end device 110, and reduces the need for the gateway device 120 to determine which server to send the software update request to. Including the network address of an over-the-air server 130 also facilitates the use, by the accessory device, of a gateway manufactured by a different manufacturer than the accessory device and improves interoperability. This allows the method 500 to be extended more flexibly across a wider range of gateway devices. In embodiments, the network address comprises an IPv4 / v6 address. In alternative embodiments, the software update request does not comprise a network address of an over-the-air server 130. In embodiments, the software update request comprises a server name, alternatively or additionally to a network address of an over-the-air server. For example, a Uniform Resource Identifier, URI, or Uniform Resource Locator, URL, for the over-the-air server 130 may be used in addition to, or alternatively to, an IPv4 / v6 network address. The gateway device 120 may resolve such a LJRI / LJRL endpoint name into an Internet address using Domain Name System, DNS, for example. This provides a more flexible solution than using a fixed network address in the software update request. In embodiments, the software update response message received at the end device 110 originates at the gateway device 120. For example, the gateway device 120 may act as both a gateway and a server (e.g. a backup server) and may store software updates for the end device 110 accordingly. In alternative embodiments, the software update response message is forwarded by the gateway device 120 to the end device 110. Such a message may originate at a remote server, for example.

[0064] Figure 6 shows a method 600 for use in over-the-air updating of software on an end device 110, according to embodiments. The method 600 is performed by a gateway device, such as the gateway device 120 described above. The gateway device 120 comprises first wireless communications circuitry 122 operable to transmit and receive data via a short-range wireless communications network 140. The gateway device 120 also comprises second communications circuitry 114 operable to transmit and receive data via a second, different communications network 125.

[0065] At item 610, a software update request message transmitted by the end device 110 via the short-range wireless communications network 140 is received via the short-range wireless communications network 140. The message is formatted according to a communications protocol associated with the different communications network 125 and encapsulated according to a communications protocol associated with the short-range wireless communications network 140.

[0066] At item 620, a message is obtained via the second, different communications network 140. The message is formatted according to the communications protocol associated with the different communications network 125. The message comprises data associated with over-the- air update of software on the end device 110.

[0067] At item 630, the obtained message is encapsulated according to the communications protocol associated with the short-range wireless communications network 140 to generate a software update response message.

[0068] At item 640, the software update response message comprising the data associated with over-the-air update of software on the end device 110 is transmitted via the short-range wireless communications network 140.

[0069] Accordingly, the gateway device 120 acts as a proxy for the end device 110 to enable an over-the-air software update process for the end device 110 to be performed. By encapsulating obtained messages (e.g. comprising the data associated with over-the-air update of software on the end device 110) according to the communications protocol associated with the short-range wireless communications network, the gateway device 120 allows the end device 110 to communicate (indirectly) via the second, different communications network, e.g. to receive messages sent via the second, different communications network. This facilitates the ability of the end device 110 to control and / or manage the over-the-air software update process.

[0070] Although a method has been described with respect to Figure 6 to comprise reception of a software update request message from the end device 110, in some embodiments, the gateway device 120 may not receive the software update request message. The update may instead be initiated by the gateway device 120 or a server 130. In other embodiments, the message comprising data associated with the over-the-air update (obtained at item 620) may be received before a software update request message is received, and held until the software update request message is received.

[0071] Figure 7 shows a method 700 for over-the-air updating of software on an end device 110 according to embodiments. The method 700 is performed by a system 100 comprising the end device 110 and the gateway device 120. The end device 110 comprises single wireless communications circuitry 112 operable to exchange data with the gateway device 120 via a short-range wireless communications network 140. The end device 110 also comprises a controller 115 operable to manage updating of software on the end device 110. The gateway device 120 comprises first wireless communications circuitry 122 operable to exchange data with the end device 110 via the short-range wireless communications network 140. The gateway device 120 also comprises second communications circuitry 124 operable to exchange data with a remote server 130 via a second, different communications network 125.

[0072] At item 710, an over-the-air software update process is initiated at the end device controller 115, by transmitting a software update request message via the short-range wireless communications network 140.

[0073] At item 720, the transmitted software update request message is received at the gateway device 120 via the short-range wireless communications network 140.

[0074] At item 730, data associated with over-the-air update of software on the end device 110 is obtained at the gateway device 120 from the remote server 130. The data is obtained via the second, different communications network 125.

[0075] At item 740, at the gateway device 120, a software update response message comprising the data associated with over-the-air update of software on the end device 110 is transmitted via the short-range wireless communications network 140. At item 750, the software update response message comprising data associated with over-the-air update of software on the end device 110 is received at the end device controller 115 via the short-range wireless communications network 140.

[0076] At item 760, at the end device controller 115, the data associated with over-the-air update of software on the end device 110 comprised in the software update response message is processed on the end device 110.

[0077] In embodiments, the single wireless communications circuitry 112 comprises BLE wireless communications circuitry.

[0078] In embodiments, one or more of the software update request message and the software update response message are transmitted according to the HPS protocol.

[0079] In embodiments, one or more of the software update request message and the software update response message are transmitted according to the IPSP protocol.

[0080] In embodiments, the second communications circuitry 124 is operable to exchange data via the Internet.

[0081] In embodiments, the gateway device 120 is configured to obtain, via the second, different communications network 125, the data associated with over-the-air update of software on the end device 110 using the HyperText Transfer Protocol, HTTP, or the HyperText Transfer Protocol Secure, HTTPS.

[0082] In embodiments, the gateway device 120 comprises one or more of: a household appliance, a mobile telephone, a router, and a personal computer. The gateway device 120 may comprise other types of device in alternative embodiments.

[0083] In embodiments, the end device 110 comprises a Bluetooth™ Low Energy accessory device. The end device 110 may comprise another type of device (including a device not capable of communicating via Bluetooth™ Low Energy) in alternative embodiments.

[0084] In embodiments, the end device 110 comprises a wireless temperature sensor, a kitchen scales, a wireless control device, a carbon dioxide monitor, a gas monitor, a smoke monitor or an alarm. In embodiments, the end device 110 comprises an accessory for a household appliance, and the gateway device 120 comprises a household appliance. For example, the end device 110 may comprise a temperature sensor and the gateway device 120 may comprise a cooking appliance. As such, in embodiments, the end device 110 and the gateway device 120 may have an existing wireless connection (e.g. a Bluetooth™ connection) used for the primary function of the end device 110 and / or the gateway device 120. The same wireless connection may then be used to send the software update request message from the end device 110 to the gateway device 120 and / or to send the software update response message from the gateway device 120 to the end device 110.

[0085] In embodiments, the software update response message indicates that an update to the software on the end device 110 is available. In some such embodiments, the processing at item 760 comprises updating the software on the end device 110 based on the data associated with over-the-air update of software on the end device 110 comprised in the software update response message.

[0086] In embodiments, the data associated with over-the-air update of software on the end device 110 comprised in the software update response message comprises software update data for implementing updating of the software on the end device 110.

[0087] In embodiments, the software update response message indicates that an update to the software on the end device 110 is not available. In some such embodiments, the processing at item 760 comprises ceasing the initiated over-the-air software update process for the end device 110.

[0088] In embodiments, the transmitted software update request message comprises an identifier for the end device 110. In embodiments, the transmitted software update request message comprises data identifying a current version of software installed on the end device 110.

[0089] Figure 8 shows a method 800 of updating software on an end device, according to embodiments. The method 800 may be used for updating software on the end device 110 described above. The end device 110 comprises single wireless communications circuitry 112. The single wireless communications circuitry 112 is operable to exchange data with a gateway device 120 via a short-range wireless communications network 140. The end device 110 also comprises a controller 115 operable to manage updating of software on the end device 110. In embodiments, the method 800 is performed at least in part by the controller 115. That is, the controller 115 is configured to perform at least some of the steps of the method 800.

[0090] At item 810, a software update message is received via the short-range wireless communications network 140. The software update message comprises data associated with over-the-air update of software on the end device 110. The software update message is formatted according to a first communications protocol and encapsulated according to a second communications protocol supported by the short-range wireless communications network 140.

[0091] At item 820, the received data associated with over-the-air update of software on the end device 110 is processed. By receiving and processing a software update message that is formatted according to a first communications protocol and encapsulated according to a second communications protocol supported by the short-range wireless communications network 140, the end device 110 is able to manage an over-the-air software update process for the end device 110, despite the end device 110 only being able to communicate directly with the gateway device 120 via the short-range wireless communications network.

[0092] In embodiments, the method 800 comprises a step (not shown) comprising, at the controller 115 of the end device 110, initiating an over-the-air software update process, by transmitting a software update request message formatted according to the first communications protocol and encapsulated according to the second communications protocol.

[0093] In embodiments, the software update request message comprises an address of an over- the-air server 130 indicating a destination for the gateway device 120 to transmit a request for an over-the-air update for the end device 110 to.

[0094] In embodiments, the gateway device comprises different communications circuitry 124 operable to exchange data via a different communications network 125 using the first communications protocol.

[0095] In embodiments, the different communications network 125 comprises the Internet and the first communications protocol is for communicating data over the Internet.

[0096] In embodiments, the first communications protocol comprises HyperText Transfer Protocol, HTTP, or HyperText Transfer Protocol Secure, HTTPS, and the second communications protocol comprises the HyperText Transfer Protocol Proxy Service, HPS, protocol.

[0097] In embodiments, the first communications protocol comprises HyperText Transfer Protocol, HTTP, HyperText Transfer Protocol Secure, HTTPS, or Message Queuing Telemetry Transport, MQTT, and the second communications protocol comprises the Internet Protocol Support Profile, IPSP, protocol.

[0098] Figure 9 shows a method 900 of operating a Bluetooth™ Low Energy, BLE, accessory device, according to embodiments. The BLE accessory device is an example of an end device, such as the end device 110 described above. The BLE accessory device comprises BLE wireless communications circuitry operable to transmit and receive data via a short-range wireless communications network. The BLE accessory device also comprises a controller operable to manage updating of firmware on the BLE accessory device. The method 900 is performed by the controller of the BLE accessory device. At item 910, an over-the-air firmware update process is initiated, by transmitting a firmware update request message via the short-range wireless communications network. The firmware update request message is transmitted according to the HyperText Transfer Protocol Proxy Service, HPS, protocol.

[0099] At item 920, in response to the transmittal, a firmware update response message is received via the short-range wireless communications network. The firmware update response message comprises data associated with over-the-air update of firmware on the BLE accessory device. The firmware update response message is transmitted according to the HPS protocol.

[0100] At item 930, firmware on the BLE accessory device is updated based on data associated with over-the-air update of firmware on the BLE accessory device comprised in the received firmware update response message.

[0101] Although a method of operating a BLE accessory device has been described with respect to Figure 9 that involves the updating of firmware, a corresponding method can be used for updating of any software. Moreover, although the update request message has been described with reference to Figure 9 to be transmitted according to the HPS profile, in alternative embodiments, the update request message may be transmitted using IPSP.

[0102] Figure 10 shows a message flow diagram of a method 1000 of updating software of the end device 110 according to embodiments. The method 1000 is performed at least in part by the system 100 described above.

[0103] In a first step 1010, the end device 110 sends a software update request message to the gateway device 120. This initiates the over-the-air software update process. That is, the over- the-air software update process is initiated at the end device 110, rather than at the gateway device 120, as was the case in the comparative example shown in Figure 4. The software update request message is sent via the short-range wireless communications network 140. In embodiments, the software update request message is formatted according to HTTP and encapsulated according to the HPS protocol.

[0104] In a second step 1020, the gateway device 120 forwards the software update request message to the remote server 130, e.g. via the Internet. The message sent to the remote server 130 may be formatted according to HTTP, for example.

[0105] In a third step 1030, the remote server 130 sends a software update response message to the gateway device 120, e.g. via the Internet. The software update response message indicates that an update to the software on the end device 110 is available. In embodiments, the software update response message comprises software update data for implementing updating of software on the end device 110. The software update response message may be formatted according to HTTP, for example.

[0106] In a fourth step 1040, the gateway device 120 forwards the software update response message to the end device 110, via the short-range wireless communications network 140, to cause the software on the end device 110 to be updated. The forwarded message may be formatted according to HTTP and encapsulated according to HPS, for example.

[0107] In embodiments, the gateway device 120 does not forward the software update request message to the remote server 130. For example, the gateway device 120 may have previously obtained an updated software package for the end device 110 and may be storing such a package locally on the gateway device 120. In such embodiments, the gateway device 120, in response to receiving the software update request message from the end device 110, sends the updated software package to the end device 110 without polling the remote server 130. As such, the remote server 130 may be omitted in some embodiments.

[0108] Although a method has been described with respect to Figure 10, in which the over- the-air update process is initiated at the end device 110, in alternative embodiments, the over- the-air update process may be initiated at the gateway device 120 or at the server 130. Consequently, in such embodiments, step 1010, or both steps 1010 and 1020, are omitted.

[0109] Figure 11 shows a schematic diagram of the system 100 according to embodiments. The system 100 may be used to implement the methods described herein. The system 100 comprises the end device 110 and the gateway device 120.

[0110] In the embodiments shown in Figure 11, the end device 110 and the gateway device 120 exchange data using the Bluetooth™ Attribute Protocol, ATT, and / or Generic Attribute Protocol, GATT, which define the roles played by each device, e.g. in terms of client or server roles. Further, the devices 110, 120 communicate using Hypertext Transfer Protocol Proxy Service, HPS, a GATT service which allows Bluetooth™-enabled devices to send HTTP requests and receive HTTP responses via gateways, or proxies, which have access to the Internet as well as Bluetooth™ connectivity. As such, in the embodiments shown in Figure 11, the end device 110 may be referred to as a “Bluetooth™ HPS client” and the gateway device 120 may be referred to as a “Bluetooth™ HPS server”.

[0111] In addition to its role as a “Bluetooth™ HPS server”, the gateway device 120 also acts as an HTTP client with respect to the remote server 130. That is, the gateway device 120 acts as a server for the end device 110 and as a client for the remote server 130. The gateway device 120 communicates with the remote server 130 using the Transmission Control Protocol, TCP, and / or Internet Protocol, IP, for example.

[0112] Figure 12 shows a schematic diagram of the system 100 according to embodiments. The system 100 may be used to implement the methods described herein. The system 100 comprises the end device 110 and the gateway device 120.

[0113] In the embodiments shown in Figure 12, the end device 110 and the gateway device 120 exchange data using the Internet Protocol Support Profile, IPSP. IPSP enables a Bluetooth™ accessory device to support IPv6 over Low power Wireless Personal Area Networks, 6L0WPAN, and to have an IPv6 address. This means that IP packets can be sent and received by the Bluetooth™ accessory devices, in addition to retaining their core Bluetooth™ capabilities. IPSP also allows devices to use protocols other than HTTP and to communicate with other devices that do not use Bluetooth™ at all but that do support IP. As such, in the embodiments shown in Figure 12, the end device 110 may be referred to as an “IPSP node” and the gateway device 120 may be referred to as an “IPSP router” or “IPSP server”.

[0114] An illustrative example will now be described. In this example, the end device 110 comprises a Bluetooth™ food temperature sensor and the gateway device 120 comprises a cooktop having embedded connectivity circuitry for both Bluetooth™ and Wi-Fi transceivers. The food sensor is connected to the cooktop via Bluetooth™. The cooktop, in turn, has an established Wi-Fi connection with a home router or other device having access to the Internet. In response to a predetermined trigger (e.g. the expiry of a predetermined time period), the food sensor checks if new firmware is available. To do so, the food sensor sends an HTTP or HTTPS request to the cooktop via the Bluetooth™ connection by means of an HPS profile deployed at both devices. The cooktop, after receiving the Bluetooth™ HTTP request, forwards it to a dedicated server via the Internet, in order to obtain a firmware update response and forward such back to the food sensor. In some cases, after receiving the initial HTTP request from the food sensor, the cooktop may convert the request into an MQTT or Constrained Application Protocol, CoAP, request, for example, according to the type of protocol that is associated with the connection between the cooktop and the server. The cooktop may reuse an already existing connection to the server or establish a new connection for the firmware update process. After receiving a response from the server, the cooktop forwards the response to the food sensor without the need to handle (e.g. process or modify) the payload of the response. If the cooktop has converted the initial HTTP request from the food sensor into an MQTT or CoAP request for the server, then the cooktop may similarly convert the response from the server (e.g. a MQTT or CoAP response) back into a HTTP response for the food sensor. If the same communications protocol is used between the food sensor and the cooktop and the cooktop and the server, then the cooktop can forward the response to the food sensor without modifying or processing the response from the server. The food sensor is responsible for handling the HTTP responses from the server, which may comprise HTTP codes with a new firmware package in pay loads (if new firmware is available), or a notification with errors in the case of a bad request, or confirmation that the current firmware on the food sensor is up-to-date and that no updates are therefore available. If a response from the server is not complete (e.g. if the response contains a partial content code) or comprises redirection instructions (e.g. a 3xx status code), this may require additional actions and / or requests performed by the cooktop in order to obtain the full software update for the food sensor. Such additional actions and / or requests may be performed without the involvement of the food sensor. Accordingly, if the cooktop receives a response from the server that is not complete or that comprises redirection instructions, such a response is not forwarded to the food sensor, in order to minimise redundant interaction between the food sensor and the cooktop. In some alternative cases, however, all responses are forwarded by the cooktop to the food sensor, even if a given response is not complete or contains redirection instructions.

[0115] In another example, the cooktop connected to the server downloads new firmware for the food sensor in advance before the food sensor checks if new firmware is available. For example, the cooktop may be configured to periodically check for firmware updates for any devices that are connected to the cooktop. In such a case, when the food sensor sends an HTTP request to the cooktop, the cooktop may start sending the updated firmware package to the food sensor with HTTP response(s) without forwarding requests to the server.

[0116] In a further example, a user owning the food sensor may not have a cooktop appliance that is compatible with the food sensor (e.g. that is connected to the same connectivity infrastructure of the environment or that corresponds to the same manufacturer as the food sensor). In such a case, a dedicated application installed in a mobile terminal, or another connected household appliance, may be used as a gateway device, each having both Bluetooth™ with HPS and Internet access capabilities.

[0117] In another example, the food sensor does not have a connection to the cooktop, another connected appliance or a mobile terminal with an appropriate application installed (e.g. an appliance or mobile application corresponding to the same manufacturer as the food sensor). In this case, the food sensor may establish a Bluetooth™ connection with a mobile terminal, smart speaker, another smart appliance, or any other device capable of performing the role of a gateway device, e.g. a device operable to have a Bluetooth™ HPS profile as well as an Internet connection. In this case, the gateway device might have no established connection to the remote server and may not be a part of the same environment as the food sensor. However, the gateway device may establish a new ad hoc HTTP connection to the remote server each time the food sensor sends an HTTP software update request via Bluetooth™ to establish an over-the-air firmware update process.

[0118] It is to be understood that any feature described in relation to any one embodiment and / or aspect may be used alone, or in combination with other features described, and may also be used in combination with one or more features of any other of the embodiments and / or aspects, or any combination of any other of the embodiments and / or aspects.

[0119] In embodiments of the present disclosure, the end device 110 comprises a controller 115. The controller 115 is configured to perform various methods described herein. In embodiments, the controller 115 comprises a processing system. Such a processing system may comprise one or more processors and / or memory. Each device, component, or function as described in relation to any of the examples described herein, for example the gateway device 120, remote server 130, single wireless communications circuitry 112, first wireless communications circuitry 122 and second communications circuitry 124, may similarly comprise a processor or may be comprised in apparatus comprising a processor. One or more aspects of the embodiments described herein comprise processes performed by apparatus. In some examples, the apparatus comprises one or more processors configured to carry out these processes. In this regard, embodiments may be implemented at least in part by computer software stored in (non-transitory) memory and executable by the processor, or by hardware, or by a combination of tangibly stored software and hardware (and tangibly stored firmware). Embodiments also extend to computer programs, particularly computer programs on or in a carrier, adapted for putting the above described embodiments into practice. The program may be in the form of non-transitory source code, object code, or in any other non-transitory form suitable for use in the implementation of processes according to embodiments. The carrier may be any entity or device capable of carrying the program, such as a RAM, a ROM, or an optical memory device, etc.

[0120] The one or more processors of processing systems may comprise a central processing unit, CPU. The one or more processors may comprise a graphics processing unit, GPU. The one or more processors may comprise one or more of a field programmable gate array, FPGA, a programmable logic device, PLD, or a complex programmable logic device, CPLD. The one or more processors may comprise an application specific integrated circuit, ASIC. It will be appreciated by the skilled person that many other types of device, in addition to the examples provided, may be used to provide the one or more processors. The one or more processors may comprise multiple co-located processors or multiple disparately located processors. Operations performed by the one or more processors may be carried out by one or more of hardware, firmware, and software. It will be appreciated that processing systems may comprise more, fewer and / or different components from those described.

[0121] The techniques described herein may be implemented in software or hardware, or may be implemented using a combination of software and hardware. They may include configuring an apparatus to carry out and / or support any or all of techniques described herein. Although at least some aspects of the examples described herein with reference to the drawings comprise computer processes performed in processing systems or processors, examples described herein also extend to computer programs, for example computer programs on or in a carrier, adapted for putting the examples into practice. The carrier may be any entity or device capable of carrying the program. The carrier may comprise a computer readable storage media.

[0122] Where in the foregoing description, integers or elements are mentioned which have known, obvious or foreseeable equivalents, then such equivalents are herein incorporated as if individually set forth. Reference should be made to the claims for determining the true scope of the present disclosure, which should be construed so as to encompass any such equivalents. It will also be appreciated by the reader that integers or features of the present disclosure that are described as preferable, advantageous, convenient or the like are optional and do not limit the scope of the independent claims. Moreover, it is to be understood that such optional integers or features, whilst of possible benefit in some embodiments of the present disclosure, may not be desirable, and may therefore be absent, in other embodiments.

Claims

CLAIMS1. A method of updating software on an end device, the end device comprising: single wireless communications circuitry operable to exchange data with a gateway device via a short-range wireless communications network; and a controller operable to manage updating of software on the end device, the method comprising, at the controller: initiating an over-the-air software update process by transmitting a software update request message to the gateway device via the short-range wireless communications network; in response to the transmittal, receiving from the gateway device via the short-range wireless communications network, a software update response message comprising data associated with over-the-air update of software on the end device; and processing the received data associated with over-the-air update of software on the end device.

2. A method according to claim 1, wherein: the software update response message indicates that an update to the software on the end device is available, and the processing comprises updating software on the end device based on the received data.

3. A method according to claim 2, wherein the software update response message comprises software update data for implementing updating of software on the end device.

4. A method according to claim 1, wherein: the software update response message indicates that an update to the software on the end device is not available, and the processing comprises ceasing the initiated over-the-air software update process for the end device.

5. A method according to any preceding claim, wherein the transmitted software update request message comprises an identifier for the end device.

6. A method according to any preceding claim, wherein the transmitted software update request message comprises data identifying a current version of software installed on the end device.

7. A method according to any preceding claim, wherein the single wireless communications circuitry comprises Bluetooth™ Low Energy wireless communications circuitry.

8. A method according to any preceding claim, wherein the controller is configured to format the software update request message according to a first communication protocol and encapsulate the software update request message according to a second communication protocol supported by the short-range wireless communications network.

9. A method according to claim 8, wherein the first communication protocol is for communicating data over the Internet.

10. A method according to any of claims 8 or claim 9, wherein the first communications protocol comprises HyperText Transfer Protocol, HTTP, or HyperText Transfer Protocol Secure, HTTPS, and the second communications protocol comprises the HyperText Transfer Protocol Proxy Service, HPS, protocol.

11. A method according to claim 8 or claim 9, wherein the first communications protocol comprises HyperText Transfer Protocol, HTTP, HyperText Transfer Protocol Secure, HTTPS, or Message Queuing Telemetry Transport, MQTT, and the second communications protocol comprises the Internet Protocol Support Profile, IPSP, protocol.

12. A method according to any preceding claim, wherein the gateway device comprises first wireless communications circuitry operable to exchange data via the short- range wireless communications network and second, different communications circuitry operable to exchange data via a second, different communications network.

13. A method according to claim 12, wherein the different communications network comprises the Internet.

14. A method according to any preceding claim, wherein the software update request comprises a network address of an over-the-air server indicating a destination for the gateway device to transmit a request for an over-the-air update for the end device to.

15. An end device comprising: single wireless communications circuitry operable to exchange data with a gateway device via a short-range wireless communications network; and a controller operable to manage updating of software on the end device, the controller being configured to: initiate an over-the-air software update process by transmitting a software update request message to the gateway device via the short-range wireless communications network; in response to the transmittal, receive from the gateway device via the short-range wireless communications network, a software update response message comprising data associated with over-the-air update of software on the end device; and process the received data associated with over-the-air update of software on the end device.

16. A computer program product comprising a set of instructions, which, when executed by an end device, cause the end device to perform a method of updating software on the end device, the end device comprising: single wireless communications circuitry operable to exchange data with a gateway device via a short-range wireless communications network; and a controller operable to manage updating of software on the end device, the method comprising, at the controller: initiating an over-the-air software update process by transmitting a software update request message to the gateway device via the short-range wireless communications network; in response to the transmittal, receiving from the gateway device via the short-range wireless communications network, a software update response message comprising data associated with over-the-air update of software on the end device; andprocessing the received data associated with over-the-air update of software on the end device.

17. A system for over-the-air updating of software on an end device, the system comprising: an end device comprising: single wireless communications circuitry operable to exchange data with a gateway device via a short-range wireless communications network, and a controller operable to manage updating of software on the end device; and a gateway device comprising: first wireless communications circuitry operable to exchange data with the end device via the short-range wireless communications network; and second communications circuitry operable to exchange data with a remote server via a second, different communications network, the system being configured to: at the end device controller, initiate an over-the-air software update process by transmitting a software update request message via the short-range wireless communications network; at the gateway device: receive, via the short-range wireless communications network, the transmitted software update request message; obtain, from the remote server, via the second, different communications network, data associated with over-the-air update of software on the end device; and transmit, via the short-range wireless communications network, a software update response message comprising the data associated with over- the-air update of software on the end device; and at the end device controller: receive, via the short-range wireless communications network, the software update response message comprising data associated with over-the-air update of software on the end device; andprocess the data associated with over-the-air update of software on the end device comprised in the software update response message on the end device.

18. A system according to claim 17, wherein the single wireless communications circuitry comprises Bluetooth™ Low Energy, BLE, wireless communications circuitry.

19. A system according to claim 17 or claim 18, wherein one or more of the software update request message and the software update response message are transmitted according to the HyperText Transfer Protocol Proxy Service, HPS, protocol.

20. A system according to any of claims 17 to 19, wherein one or more of the software update request message and the software update response message are transmitted according to the Internet Protocol Support Profile, IPSP, protocol.

21. A system according to any of claims 17 to 20, wherein the second communications circuitry is operable to exchange data via the Internet.

22. A system according to any of claims 17 to 21, wherein the gateway device is configured to obtain, via the second, different communications network, the data associated with over-the-air update of software on the end device using the HyperText Transfer Protocol, HTTP, or the HyperText Transfer Protocol Secure, HTTPS.

23. A system according to any of claims 17 to 22, wherein the gateway device comprises one or more of: a household appliance, a mobile telephone, a router, and a personal computer.

24. A system according to any of claims 17 to 23, wherein the end device comprises a Bluetooth™ Low Energy accessory device.

25. A system according to any of claims 17 to 24, wherein the end device comprises a wireless temperature sensor, a kitchen scales, a wireless control device, a carbon dioxide monitor, a gas monitor, a smoke monitor or an alarm.

26. A system according to any of claims 17 to 25, wherein: the software update response message indicates that an update to the software on the end device is available, and the processing comprises updating the software on the end device based on the data associated with over-the-air update of software on the end device comprised in the software update response message.

27. A system according to claim 26, wherein the data associated with over-the-air update of software on the end device comprised in the software update response message comprises software update data for implementing updating of the software on the end device.

28. A system according to any of claims 17 to 25, wherein: the software update response message indicates that an update to the software on the end device is not available, and the processing comprising ceasing the initiated over-the-air software update process for the end device.

29. A system according to any of claims 17 to 28, wherein the transmitted software update request message comprises an identifier for the end device.

30. A system according to any of claims 17 to 29, wherein the transmitted software update request message comprises data identifying a current version of software installed on the end device.

31. A gateway device for use in over-the-air updating of software on an end device, the gateway device comprising: first wireless communications circuitry operable to transmit and receive data via a short-range wireless communications network; andsecond communications circuitry operable to transmit and receive data via a second, different communications network, the gateway device being configured to: receive, via the short-range wireless communications network, a software update request message transmitted by the end device via the short-range wireless communications network, the message being formatted according to a communications protocol associated with the different communications network and encapsulated according to a communication protocol associated with the short-range wireless communications network; obtain, via the second, different communications network, a message formatted according to the communications protocol associated with the different communications network and comprising data associated with over-the-air update of software on the end device; encapsulate the obtained message according to the communication protocol associated with the short-range wireless communications network to generate a software update response message; and transmit, via the short-range wireless communications network, the software update response message comprising the data associated with over-the-air update of software on the end device.

32. A Bluetooth™ Low Energy, BLE, accessory device comprising:BLE wireless communications circuitry operable to transmit and receive data via a short-range wireless communications network; and a controller operable to manage updating of software on the BLE accessory device, the controller being configured to: initiate an over-the-air software update process by transmitting a software update request message via the short-range wireless communications network, the software update request message being transmitted according to the HyperText Transfer Protocol Proxy Service, HPS, protocol; in response to the transmittal, receive via the short-range wireless communications network, a software update response message comprising data associated with over-the-air update of software on the BLE accessory device, the software update response message being transmitted according to the HPS protocol; andupdate software on the BLE accessory device based on data associated with over-the- air update of software on the BLE accessory device comprised in the received software update response message.

33. A method of updating software on an end device, the end device comprising: single wireless communications circuitry operable to exchange data with a gateway device via a short-range wireless communications network; and a controller operable to manage updating of software on the end device, the method comprising, at the controller: receiving, via the short-range wireless communications network, a software update message comprising data associated with over-the-air update of software on the end device, the software update message being formatted according to a first communications protocol and encapsulated according to a second communications protocol supported by the short-range wireless communications network; and processing the received data associated with over-the-air update of software on the end device.

34. A method according to claim 33, wherein the controller is operable to initiate an over-the-air software update process by transmitting a software update request message formatted according to the first communications protocol and encapsulated according to the second communications protocol.

35. A method according to claim 34, wherein the software update request message comprises an address of an over-the-air server indicating a destination for the gateway device to transmit a request for an over-the-air update for the end device to.

36. A method according to any of claims 33 to 35, wherein the gateway device comprises different communications circuitry operable to exchange data via a different communications network using the first communications protocol.

37. A method according to claim 36, wherein the different communications network comprises the Internet and the first communications protocol is for communicating data over the Internet.

38. A method according to any of claims 33 to 37, wherein the first communications protocol comprises HyperText Transfer Protocol, HTTP, or HyperText Transfer Protocol Secure, HTTPS, and the second communication protocol comprises the HyperText Transfer Protocol Proxy Service, HPS, protocol.

39. A method according to any of claims 33 to 37, wherein the first communications protocol comprises HyperText Transfer Protocol, HTTP, HyperText Transfer Protocol Secure, HTTPS, or Message Queuing Telemetry Transport, MQTT and the second communications protocol comprises the Internet Protocol Support Profile, IPSP, protocol.