Method, management platform and system for performing software module update on remote devices

EP4771482A2Pending Publication Date: 2026-07-08ABL IP HLDG LLC

Patent Information

Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
ABL IP HLDG LLC
Filing Date
2024-08-29
Publication Date
2026-07-08

AI Technical Summary

Technical Problem

Existing building management systems face challenges in efficiently updating software modules on remote devices due to the variety of devices, security concerns, operational effectiveness requirements, cost issues, scalability, and the frequency of software updates.

Method used

A method, management platform, and system for performing software module updates on remote devices, which involves identifying devices in a specific area, selecting a subset based on criteria like location or type, sending an update request, and confirming successful updates.

Benefits of technology

This approach enables efficient and targeted software module updates across various remote devices in a building management system, enhancing security, operational effectiveness, and scalability while reducing costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2024044432_06032025_PF_FP_ABST
    Figure US2024044432_06032025_PF_FP_ABST
Patent Text Reader

Abstract

Method, management platform and system for performing software module update on remote devices. Remote devices with the software module to be updated and located in one area are identified. A subset of the remote devices located in the one area is selected. The selection of the subset is based on at least one of the following: a building where the remote devices are located, a floor where the remote devices are located in the building, a type of remote device, a type of appliance controlled by the remote device, a type of room where the remote device is located, and an occupancy level of the room where the remote device is located. A software module update request is sent to the selected subset of the remote devices. A confirmation that the software module update completed successfully is received from each selected remote device.
Need to check novelty before this filing date? Find Prior Art

Description

METHOD, MANAGEMENT PLATFORM AND SYSTEM FOR PERFORMING SOFTWARE MODULE UPDATE ON REMOTE DEVICESCross-Reference to Related Applications

[0001] This application claims priority to U.S. Provisional Patent Application No. 63 / 535,486 filed on August 30, 2023, titled “METHOD, MANAGEMENT PLATFORM AND SYSTEM FOR PERFORMING SOFTWARE MODULE UPDATE ON REMOTE DEVICES,” the entire disclosure of which is incorporated by reference herein.Technical Field

[0002] The present disclosure relates to the field of building management systems. More specifically, the present disclosure relates to a method, management platform and system for performing software module update on remote devices.Background Art

[0003] Systems for controlling environmental conditions, for example in buildings, are becoming increasingly sophisticated. A control system may at once control heating and cooling, monitor air quality, detect hazardous conditions such as fire, carbon monoxide release, intrusion, and the like. Thus, efficiently managing a building is more complicated than ever. The number of systems and components to be maintained and managed has exploded in the past decade. The challenges faced by system and component integrators, as well as by building managers, have multiplied.

[0004] In the context of a home environment, various types of home appliances are now handled as Internet Of Things (IOT) devices under the control of a centralized IOT platform. The IOT platform is located in a cloud infrastructure and is managed by a service provider. The user interacts with the IOT platform through a personal communication device (e.g. a smartphone) and is capable of remotely controlling a plurality of home appliances. The home appliances and the personal communication device are connected to a home network (e.g. a Wi-Fi network). The interactions of the home appliances and the personal communication device with theIOT platform occur through the home network, which is connected to the Internet, the IOT platform being also connected to the Internet. The IOT platform generally implements several functionalities: discovery of the home appliances, configuration of at least some of the home appliances, remote user control of the home appliances by the user through its personal communication device, etc. The solutions deployed in the context of a home environment are technologically among the most advanced, and also the most proven due to wide scale deployments in the public. However, these solutions are only capable of managing a limited variety of home appliances, which have been specifically designed to be compatible with the functionalities of the centralized IOT platform.

[0005] An environment control system deployed in a building can also be considered as an IOT system, with similarities to the previously described home environment. The various types of equipment involved in building management (e.g. controllers, sensors, controlled appliances, etc.) may be considered as IOT devices. However, due to the variety and quantity of equipment being deployed, several independent management platforms are usually used for managing several independent groups of equipment located in the building, each management platform providing its own functionalities, having its own limitations, etc.

[0006] Thus, although some of the techniques and technologies used in the context of the home environment may be adapted to a building environment control system, new solutions need to be designed and deployed to take into consideration specific challenges. These specific challenges include versatility in the types of electronic devices to be remotely managed, security issues, operational effectiveness requirements (e.g. limited number of failures, maximum availability over time, etc.), cost issues, scalability, etc.

[0007] A particularly important issue to address is to keep the software modules used by the various electronic devices located in the building up to date. This is becoming increasingly critical in terms of security (having up to date software modules is considered crucial to avoid security threats). Furthermore, the life cycle of software components has shortened, with software updates by the editors of software occurring more frequently. Thus, the deployment of software updates in thecontext of electronic devices deployed in a building are becoming more frequent and increasingly complicated (due to the variety of software modules used by the variety of electronic devices).

[0008] Therefore, there is a need for a new method, management platform and system for performing software module update on remote devices.Summary of Invention

[0009] According to a first aspect, the present disclosure relates to a method for performing software module update on remote devices. The method comprises identifying the remote devices with the software module to be updated located in one area. The method comprises selecting a subset of the remote devices located in the one area. The selection of the subset is based on at least one of the following: a building where the remote devices are located, a floor where the remote devices are located in the building, a type of remote device, a type of appliance controlled by the remote device, a type of room where the remote device is located, and an occupancy level of the room where the remote device is located. The method comprises sending a software module update request to the selected subset of the remote devices.

[0010] In a particular aspect, identifying the remote devices with the software module to be updated is performed by one of the following: a building management platform, a building management system or a database.

[0011] In another particular aspect, the identification of the remote devices with the software module to be updated is performed based on any of the following: an IP address of the remote devices and an IP address of a gateway through which the remote devices communicate.

[0012] In still another particular aspect, the one area is identified by any of the following: Global Positioning System (GPS) coordinates, postal code, area code, street address, floor number, IP address and network address.

[0013] In yet another particular aspect, the software module update request comprises at least one of the following: a software code for performing the softwaremodule update, information related to the software module to be updated, and information for downloading the software code.

[0014] In another particular aspect, the method further comprises receiving from each selected remote device a confirmation that the software module update completed successfully.

[0015] In still another particular aspect, the method further comprises: upon confirmation that the software module update completed successfully for the selected remote devices, selecting a subsequent subset of the remote devices located in the one area, sending the software module update request to the subsequent subset of the remote devices and receiving from each remote device of the subsequent subset of the remote devices the confirmation that the software module update completed successfully.

[0016] In yet another particular aspect, the method further comprises receiving from at least one of the selected remote devices an indication that the software module update failed.

[0017] In another particular aspect, the method further comprises: upon reception of an indication that the software module update failed for at least one of the selected remote devices, resending the software module update request to the at least one of the selected remote devices for which the software module update failed.

[0018] In still another particular aspect, the software module to be updated is one of multiple software modules executed by the remote devices.

[0019] In yet another particular aspect, the software module to be updated is a firmware executed by the remote devices.

[0020] In another particular aspect, the type of remote device is one of the following: a thermostat, a Heating Ventilation and Air Conditioner (HVAC) controller, a light controller, a blind controller, a remote control, a sensor, and a controlled appliance controlled by a controller.

[0021] In still another particular aspect, the type of appliance controlled by the remote device is one of the following: a Heating Ventilation and Air Conditioner (HVAC) system, a refrigeration system, a security system, a light system, and a blind control system.

[0022] In yet another particular aspect, the method is performed by a management platform.

[0023] In another aspect, the method is performed by a system.Brief Description of Drawings

[0024] Embodiments of the disclosure will be described by way of example only with reference to the accompanying drawings.

[0025] Figures 1 A and 1 B represent a building management system comprising a management platform and a plurality of remote devices under the control of the management platform.

[0026] Figure 1C represents the remote devices of Figures 1A and 1 B including sensors, an environment controller and controlled appliances.

[0027] Figures 1 D and 1 E represent one or more gateways providing interworking functionalities between the management platform and the remote devices illustrated in Figures 1A and 1 B.

[0028] Figure 2A provides a schematic representation of components of the management platform illustrated in Figures 1A-E.

[0029] Figure 2B provides a schematic representation of components of the remote devices illustrated in Figures 1A-E.

[0030] Figure 2C provides a schematic representation of components of the gateways illustrated in Figures 1 D-E.

[0031] Figures 3A and 3B represent interactions for performing a software module update between the management platform and the remote devices illustrated in Figures 1A-B.

[0032] Figure 3C represents the interactions illustrated in Figure 3A going through a gateway.

[0033] Figure 4 represents a method for performing software module update on remote.Description of Embodiments

[0034] The foregoing and other features will become more apparent upon reading of the following non-restrictive description of illustrative embodiments thereof, given by way of example only with reference to the accompanying drawings.

[0035] Various aspects of the present disclosure generally address one or more of the problems related to the management of a software module update procedure in the context of a building management system comprising a large number of devices of various types affected by the software module update procedure.

[0036] The following terminology is used throughout the present disclosure.

[0037] Devices: Any type of electronic device, or any apparatus or equipment equipped with an electronic device.

[0038] Electronic device: any device which comprises at least a processor and an Input / Output (I / O) interface.

[0039] Information: group of data that collectively carries a logical meaning. Examples of types of information include parametric information, configuration information and measurement information.

[0040] Environment: condition(s) (temperature, humidity, pressure, oxygen level, carbon dioxide level, light level, security, etc.) prevailing in a controlled area or place, such as for example in a building.

[0041] Environment control system: a set of components which collaborate for monitoring and controlling an environment.

[0042] Environment controller: device capable of receiving information related to an environment and sending commands based on such information.

[0043] Environmental characteristic: measurable, quantifiable or verifiable property of an environment.

[0044] Environmental characteristic value: numerical, qualitative or verifiable representation of an environmental characteristic.

[0045] Sensor: device that detects an environmental characteristic and provides a numerical, quantitative or verifiable representation thereof. The numerical, quantitative or verifiable representation may be sent to an environment controller.

[0046] Controlled appliance: device that receives a command and executes the command. The command may be received from an environment controller.

[0047] Referring concurrently to Figures 1A, 1 B, 1 C, 1 D and 1 E, a building management system is illustrated.

[0048] Reference is now made more specifically to Figure 1 A, the building management system comprises a building 10, a plurality of remote devices 100 located in the building 10 and a management platform 200 also located in the building.

[0049] The building management system is adapted to support any type of building 10, including a commercial building, an industrial building, an office building, a housing building, etc. Furthermore, the configuration of the building 10 may vary with respect to the dimensions of the building, the number of floors of the building, the number of rooms per floor of the building, the dimensions of the rooms of the building, the types of rooms of the building, etc.

[0050] The management platform 200 is adapted to collect information from the remote devices 100. The collected information is stored by the management platform 200. The collected information is further processed, in real time or at a delayed time, by the management platform 200. The processing of the collected information triggers actions performed by the management platform 200 and affecting at least some of the remote devices 100. Alternatively, or complementarily, the actions performed by the management platform 200 and affecting at least some of the remote devices 100 are triggered by a user interaction with the management platform, a command received by the management platform 200 from a control device (not represented in Figure 1 A for simplification purpose), etc.

[0051] Examples of actions performed by the management platform 200 and affecting at least some of the remote devices 100 include transferring information to be stored and I or processed by the remote devices 100, transferring commands to be executed by the remote devices 100, etc. The transfer of information may convey implicit or explicit actions to be performed by the remote devices 100 upon reception of the information.

[0052] At least some of the remote devices 100 are adapted for transmitting the information which needs to be collected by the management platform 200, either in a push mode (the remote device 100 automatically transfer information without receiving a solicitation from the management platform 200) or in a pull mode (the remote device 100 transfers information upon reception of a solicitation from the management platform 200).

[0053] At least some of the remote devices 100 are adapted for receiving the information, commands, etc. transmitted by the management platform 200, and further performing adequate processing of the received information, commands, etc.

[0054] The type of information transmitted by a remote device 100 to the management platform 200 may vary based on the type of remote device 100. For example, generic information is transmitted by all types of remote devices 100. By contrast, certain types of remote devices 100 transmit dedicated information which are not transmitted by the other types of remoted devices 100.

[0055] Similarly, the type of information, commands, etc. received by a remote device 100 from the management platform 200 may vary based on the type of remote device 100. For example, generic information, commands, etc. are received by all types of remote devices 100. By contrast, certain types of remote devices 100 receive dedicated information, commands, etc. which are not received by the other types of remote devices 100.

[0056] The management platform 200 and the remote devices 100 communicate via one or more local communication networks deployed within the building 10. For example, the one or more local communication networks include a combination of interconnected Wi-Fi and Ethernet networks.

[0057] Reference is now made more specifically to Figure 1 B. The building management system illustrated in Figure 1 B is similar to the one illustrated in Figure 1 A, except for the management platform 200 being located outside the building 10.

[0058] Figure 1 B is representative of a cloud infrastructure, where the management platform 200 is hosted at a dedicated facility located outside the building 10. Although a single building 10 is represented in Figure 1 B, the management platform 200 may be adapted to manage remote devices 100 located in a plurality of buildings 10.

[0059] The management platform 200 and the remote devices 100 communicate via one or more local communication networks deployed within the building 10, and an external network (e.g. the Internet) interconnecting the local communication network(s) with the management platform 200.

[0060] Reference is now made more specifically to Figure 1C. The building management system illustrated in Figure 1 C corresponds to any of the building management systems illustrated in Figures 1 A and 1 B.

[0061] Figure 1C illustrates remote devices 100 deployed in the context of an environment control system located in a building. The remote devices 100 include sensors, controlled appliances and at least one environment controller.

[0062] The sensors are adapted to determine environmental characteristic values (e.g. temperature in a room, humidity level in a room, carbon dioxide (CO2) level measurement, lighting level in a room, occupancy of a room, etc.) and to transmit the environmental characteristic values to the environment controller.

[0063] The environment controller is adapted to process environmental characteristic values received from the sensors (and optionally additional data, such as setpoint(s) received from a user), to generate and transmit command(s) for controlling controlled appliance(s). Upon reception of the command(s), each controlled appliance enforces the command(s). For example, the controlled appliance actuates internal components (e.g. a motor, an electrical circuit, a valve, etc.) based on the received command(s), to effectively adapt the environmental conditions of the building.

[0064] Examples of controlled appliances include a Heating Ventilation and Air Conditioner (HVAC) system, a refrigeration system, a security system, a light system, a blind control system, a solar power generation system, a heating system, etc.

[0065] Examples of controllers include a HVAC controller adapted to control a HVAC system, a controller adapted to control a refrigeration system, a controller adapted to control a security system, a light controller adapted to control a light system, a blind controller adapted to control a blind control system, etc. A single controller may also be adapted to control several types of controlled appliances (e.g. a controller adapted to control a light system and a blind control system).

[0066] Additional types of remote devices 100 which may not enter in one of the previous categories (sensors, controllers and controlled appliances) include a thermostat, a remote control, etc.

[0067] The management platform 200 is adapted to manage at least some of the environment control devices (ECD) 100 deployed in the building. The ECDs 100 directly managed by the management platform 200 generally include all the environment controller(s), at least some of the sensor(s) and at least some of the controlled appliance(s). Some ECDs which are not directly manageable by the management platform 200 may be managed through an environment controller.

[0068] In the context of the environment control system illustrated in Figure 1 C, the management platform 200 may implement dedicated functionalities adapted to the environment control of a building. For example, the management platform 200 collects the following information: at least some of the environmental characteristics values determined by the sensors, at least some of the commands generated by the environment controllers. Furthermore, the management platform 200 provides remote control of the environment control ler(s), for example by allowing a user to control operations of a given environment controller (e.g. by providing setpoints, such as a temperature setpoint) through the management platform 200.

[0069] Reference is now made more specifically to Figures 1 D and 1 E. The building management system illustrated in Figures 1 D and 1 E corresponds to any of the building management systems illustrated in Figures 1A and 1 B.

[0070] Figure 1 D illustrates the deployment of a gateway 300 providing interworking functionalities between the management platform 200 and the remote devices 100.

[0071] Figure 1 E illustrates the deployment of two gateways 300 providing interworking functionalities between the management platform 200 and the remote devices 100. The first gateway 300 is connected to some of the remote devices 100 and the second gateway 300 is connected to the rest of the remote devices. Figure 1 E can be generalized to a management platform 200 using any number of gateways 200 for interconnection purposes with the remote devices 100.

[0072] For each building where remote devices 100 are located, one or more gateways 300 are deployed. For example, if the building comprises a plurality of independent communication networks to which remote devices 100 are connected, a gateway 300 is deployed for interconnecting each independent communication network to the management platform 200. Alternatively or complementarily, a given gateway 300 is capable of interconnecting several each independent communication networks (and the corresponding remote devices 100) to the management platform 200.

[0073] Independent communication networks include communication networks supporting different communication protocols, communication networks operating independently from one another for security reasons or other reasons, etc.

[0074] Optionally, the gateway 300 provides one or more additional functionalities. For example, the gateway 300 implements protocol conversion functionalities. For instance, the management platform 200 relies on a first communication protocol for exchanging information, while at least some of the remote devices 100 rely on a second communication protocol (not compatible with the first communication protocol) for exchanging information. The gateway 300provides protocol conversion between the first communication protocol and the second communication protocol.

[0075] Referring concurrently to Figures 1A, 1 B, 1 C, 1 D, 1 E and 2A, a schematic representation of components of the management platform 200 is illustrated.

[0076] The management platform 200 comprises a processing unit 210, memory 220, at least one communication interface 230, optionally a user interface 240, and optionally a display 250. The management platform 200 may comprise additional components not represented in Figure 2A for simplification purposes.

[0077] The processing unit 210 comprises one or more processors (not represented in Figure 2A) capable of executing instructions of a computer program. Each processor may further comprise one or several cores.

[0078] The memory 220 stores instructions of computer program(s) executed by the processing unit 210, data generated by the execution of the computer program(s), data received via the communication interface(s) 230, data received via the optional user interface 240, etc. Only a single memory 220 is represented in Figure 2A, but the management platform 200 may comprise several types of memories, including volatile memory (such as a volatile Random Access Memory (RAM)) and non-volatile memory (such as a hard drive).

[0079] The communication interface 230 allows the management platform 200 to exchange data with other devices (e g. the remote devices 100, etc.) over one or more communication networks (not represented in Figure 2A for simplification purposes). The term communication interface 230 shall be interpreted broadly, as supporting a single communication standard / technology, or a plurality of communication standards / technologies. Examples of communication interfaces 230 include a wireless (e.g. Wi-Fi, cellular, wireless mesh, etc.) communication module, a wired (e.g. Ethernet) communication module, a combination of wireless and wired communication modules, etc.

[0080] Referring concurrently to Figures 1A, 1 B, 1C, 1 D, 1 E and 2B, a schematic representation of components of the remote device 100 is illustrated.

[0081] The remote device 100 is an electronic device or integrates functionalities of an electronic device. The remote device 100 comprises a processing unit 110, optionally memory 120, at least one Input / Output (I / O) interface 130, and at least one dedicated component 140.

[0082] The processing unit 110 comprises one or more processors (not represented in Figure 2B) capable of executing instructions of a computer program. Each processor may further comprise one or several cores. Alternatively, or complementarily, the processing unit 110 comprises one or more Field Programmable Gate Arrays (FPGAs), one or more Application-Specific Integrated Circuits (ASICs), etc.

[0083] The memory 120 stores instructions of computer program(s) executed by the processing unit 110, data generated by the execution of the computer program(s), data received via the I / O interface(s) 130, data received, etc. Only a single memory 120 is represented in Figure 2B, but the remote device 100 may comprise several types of memories, including volatile memory (such as a volatile Random Access Memory (RAM)) and non-volatile memory (such as a hard drive). Instead of a standalone memory 120 as illustrated in Figure 2B, the memory 120 may be directly integrated to the processing unit 110.

[0084] The I / O interface 130 allows the remote device 100 to exchange data with other devices (e.g. other remote devices 100, optionally the management platform 200, etc.) over one or more communication networks (not represented in Figure 2B for simplification purposes). The I / O interface is similar to the previously described communication interface. However, in some cases, the I / O interface provides more basic communication functionalities than a standard communication interface. For example, a remote device 100 consisting of a controlled appliance may have one basic I / O interface 130. In this case, a remote device 100 consisting of a controller in charge of controlling the controlled appliance also comprises one basic I / O interface 130 for communicating with the controlled appliance. The controller further comprises at least one more advanced I / O interface 130 (e.g. a standard communication interface) for communicating with other devices (e.g. the management platform 200).

[0085] The nature of the dedicated component(s) 140 depends on the type of remote device 100. For example, a remote device 100 consisting of a sensor comprises one or more dedicated components 140 consisting of sensing components for measuring environmental characteristics (e.g. a temperature sensing component, a lighting level sensing component, etc.). In another example, a remote device 100 consisting of a controlled appliance may comprise at least one of the following dedicated components 140: an actuator, a motor, an electrical circuit, a valve, etc.

[0086] Referring concurrently to Figures 1 D, 1 E and 2C, a schematic representation of components of the gateway 300 is illustrated.

[0087] The gateway 300 comprises a processing unit 310, memory 320, and at least one communication interface 330. The gateway 300 may comprise additional components not represented in Figure 2C for simplification purposes. The processing unit 310, the memory 320 and the communication interface(s) 330 are similar to the previously described processing unit 210, memory 220 and communication interface(s) 230 illustrated in Figure 2A.

[0088] Referring concurrently to Figures 2A, 2B, 2C, 3A, 3B, 3C and 4, Figure 4 illustrates a method 400 for performing a software module update on the remote devices 100. At least some of the steps of the method 400 are implemented by the management platform 200. Figures 3A, 3B and 3C illustrate interactions between the management platform 200 and the remote devices 100 in the context of the method 400.

[0089] A dedicated computer program has instructions for implementing at least some of the steps of the method 400. The instructions are comprised in a non- transitory computer program product (e.g. the memory 220) of the management platform 200. The instructions provide for performing software module update on the remote devices 100, when executed by the processing unit 210 of the management platform 200. The instructions are deliverable to the management platform 200 via an electronically-readable media such as a storage media (e.g. CD-ROM, USB key,etc.), or via communication links (e.g. via a communication network through the communication interface 230).

[0090] The method 400 comprises the step 405 of identifying remote devices 100 with a software module to be updated located in one area. Step 405 is performed by the processing unit 210 of the management platform 200.

[0091] The area defines a set of remote devices 100 located in the area, which are candidates for having their software module updated. Examples of areas include a geographical zone, a campus, a building, one or more floors of a building, a section of a building, etc.

[0092] Depending on the type of area, an identification of the area may be based on any of the following: Global Positioning System (GPS) coordinates , postal code, area code, street address, floor number, IP address (e.g. IP address of a gateway 300 providing access to the remote devices 100 located in the area), network address (e.g. a network address upon which the IP addresses of the remote device 100 located in the area are based), etc.

[0093] The determination of the software module to be updated is beyond the scope of the present disclosure. For example, the software module is provided by a third party, and the third party released a new version of the software module.

[0094] For each remote device 100 under its control, the management platform 200 maintains a list of at least some of the software modules used by the remote device 100. Thus, knowing the area, the remote devices 100 candidate for having their software module updated are located in the area and use the software module that needs to be updated.

[0095] Step 405 is not limited to being performed by the management platform 200. Other entities may be involved in the execution of step 405, in place of or in cooperation with the management platform 200. For example, a database is used for performing step 405, the database storing the information used for the identification of the remote devices 100 with the software module to be updated. In another example, a legacy building management platform already deployed in a building performs step 405 and transmits the identified remote devices 100 to themanagement platform 200. In this case, the management platform 200 operates independently of the legacy building management platform and delegates the execution of step 405 to the legacy building management platform. In still another example, a legacy building management system already deployed in a building performs step 405. The difference between the legacy building management platform and the legacy building management system is that the legacy building management platform comprises a single entity (e.g. a server), while the legacy building management system comprises several entities (e.g. a server and a database).

[0096] The identification of the remote devices 100 with the software module to be updated may be based on various identification means. For example, each remote device 100 has an IP address which is used for identification purposes at step 405. In another example illustrated in Figure 3C, the remote devices (e.g.101 , 102, 103, 104 and 105) communicate through the gateway 300, and an IP address of the gateway 300 is used for identifying all the remote devices (e.g. 101 ,102, 103, 104 and 105) communicating therethrough. In still another example also illustrated in Figure 3C, each remote device (e.g. 101 , 102, 103, 104 and 105) communicating through the gateway 300 is identified by a combination of an IP address of the gateway 300 and an IP address of the remote device.

[0097] The method 400 comprises the step 410 of selecting a subset of the remote devices 100 located in the one area. Step 410 is performed by the processing unit 210 of the management platform 200.

[0098] The selection of the subset of the remote devices 100 located in the one area is based on at least one of the following: a building where the remote devices 100 are located, a floor where the remote devices 100 are located in the building, a type of remote device 100, a type of appliance controlled by the remote device 100, a type of room where the remote device 100 is located, and an occupancy level of the room where the remote device 100 is located.

[0099] Following are examples of the area and the corresponding selection of the subset of remote devices 100. The area is a geographical zone or a campusand the selected remote devices 100 are located in one or more selected buildings of the area. The area is a building with several floors and the selected remote devices 100 are located in one or more selected floors of the building. The area is any type of area and the selected remote devices 100 are selected type(s) of remote devices. Following are examples of selected type(s) of remote devices: temperature sensors, all the sensors using the software module to be updated, HVAC controllers, all the controllers using the software module to be updated, thermostats, remote controls, a security system, a type of controlled appliance directly under the control of the management platform 200 (e.g. a light system), etc. The area is any type of area and the selected remote devices 100 are controllers controlling a selected type of controlled appliance (e.g. controllers controlling a HVAC system, controllers controlling a refrigeration system, controllers controlling a security system, controllers controlling a light system, controllers controlling a blind control system, etc.). The area is a building and the selected remote devices 100 are located in one or more rooms of a selected type (e.g. offices in the building, meeting rooms in the building, etc.). The area is a building and the selected remote devices 100 are located in rooms with a selected level of occupancy (e.g. unoccupied rooms, rooms with less than a number N of occupants, etc.).

[0100] The method 400 comprises the step 415 of sending a software module update request to the selected subset of the remote devices 100. Step 415 is performed by the processing unit 210 of the management platform 200.

[0101] The software module update request includes at least one of executable software code (e.g. a compiled C or C++ software module), source software code for an interpreter (e.g. a java or python software module), and another type of software code. Optionally, the software module update request further comprises information related to the software module to be updated, which are used for performing the update of the software module on the subset of the remote devices 100 selected at step 410 (e.g. identification of the software module to be updated on the remote devices 100). Alternatively, instead of directly sending the software code to perform the update, information for downloading the software code is sent (e.g. an HTTP link where the software code is available for download).

[0102] In the context of an environment control system, some of the remote devices 100 execute one or more software modules consisting of a firmware. A firmware is a particular type of software implementing functionalities generally close to the hardware and generally not relying on an operating system for its execution. For instance, the usage of a firmware may occur in the case of certain types of sensors or controlled appliances. Thus, the software module to be updated via the method 400 may be a firmware.

[0103] The method 400 comprises the step 420 of performing the software module update. Step 420 is performed by the processing unit 110 of each remote device 100 selected at step 410.

[0104] The implementation of step 420 is out of the scope of the present disclosure. A person skilled in the art would readily understand how the update of the software module based on the information transmitted in the software module update request can be implemented. For example, an older version of the code of the software module stored in (permanent) memory 220 is replaced with the updated version of the code of the software module received from the management platform 200 through the software module update request.

[0105] After successful completion of step 420, each remote device 100 selected at step 410 sends a confirmation that the software module update completed successfully.

[0106] The method 400 comprises the step 425 of receiving from each remote device selected at step 410 a confirmation that the software module update completed successfully. Step 425 is performed by the processing unit 210 of the management platform 200.

[0107] For example, in Figure 3A, five remote devices 101 , 102, 103, 104 and 105 are represented (in Figures 3A, 3B and 3C, reference numbers 101 to 105 have been used instead of reference number 100 for differentiating each one of the five remote devices). The five remote devices 101 , 102, 103, 104 and 105 have been identified at step 405. The remote devices 101 and 104 have been selected at step 410. The software module update request has been sent by the platform 200 to theremote devices 101 and 104 at step 415. The remote devices 101 and 104 have performed the software module update at step 420. A confirmation of successful update has been received by the platform 200 from the remote devices 101 and 104 at step 425.

[0108] Optionally, upon successful completion of steps 410-425, another iteration of steps 410-425 is performed with another subset of the remote devices 100. The next iteration of step 410 consists in selecting a subsequent subset of the remote devices 100 located in the one area. The next iteration of step 415 consists in sending the software module update request to the selected subsequent subset of the remote devices 100. The next iteration of step 420 consists in performing the software module update on each remote device 100 of the selected subsequent subset. The next iteration of step 425 consists in receiving from each remote device 100 of the selected subsequent subset a confirmation that the software module update completed successfully.

[0109] For example, Figure 3B illustrates a second iteration of steps 410- 425 after the first iteration illustrated in Figure 3A completed successfully. The remote devices 102, 103 and 105 have been selected at the second iteration of step 410. The software module update request has been sent by the platform 200 to the remote devices 102, 103 and 105 at the second iteration of step 415. The remote devices 102, 103 and 105 have performed the software module update at the next iteration of step 420. A confirmation of successful update has been received by the platform 200 from the remote devices 102, 103 and 105 at the next iteration of step 425.

[0110] Any number of iterations of steps 410-425 may be performed, as long as subsequent subsets of the remote devices 100 can be identified at each iteration of step 410.

[0111] In an exemplary implementation, the selection of the subsets illustrated in Figures 3A and 3B is based on an occupancy level of a room where the remote devices are located. More specifically, a remote device is selected only if the room where it is located is not occupied. For illustration purposes, each remotedevice 101 to 105 is considered to be located in a different room. At the first iteration of steps 410-425 illustrated in Figure 3A, the rooms where the remote devices 101 and 104 are located are not occupied, while the rooms where the remote devices 102, 103 and 105 are occupied. Thus, the first subset comprises devices 101 and104. At the second iteration of steps 410-425 illustrated in Figure 3B, the rooms where the remote devices 102, 103 and 105 are located are not occupied (remote devices 101 and 104 are no longer considered, since they have already been successfully updated). Thus, the second subset comprises devices 102, 103 and105.

[0112] After completion of each iteration of steps 410-425, the management platform 200 may wait for a pre-defined amount of time before attempting to execute a next iteration of steps 410-425. For example, in the case where the selection of the subsets of remote devices is based on an occupancy level of a room where the remote devices are located, the pre-defined amount of time allows for some of the rooms which were occupied during the current iteration to become unoccupied for the next iteration.

[0113] Furthermore, instead of supporting the update of a single software module, the method 400 can be adapted to support the update of a plurality of software modules simultaneously. The remote devices 100 selected at step 410 are instructed via the software module update request sent at step 415 to perform the update of the plurality of software modules. The software module update request comprises all the information (as described previously) needed by the selected remote devices 100 for performing the update of each one of the plurality of software modules. The confirmation received at step 425 is a confirmation of a successful update for each of the plurality of software modules.

[0114] Although not represented in Figure 4 for simplification purposes, the following procedure can be implemented in case the software module update did not complete successfully on a given remote device 100. The given remote device 100 sends an indication that the software module update was not completed successfully. Upon reception of the indication, the management platform 200 may take at least one of the following action: repeat the process of updating the givenremote device 100 by repeating step 415 for the given remote device 100 immediately or at a later time (e.g. after expiration of a pre-define delay), send a notification identifying the given remote device 100 and the software module update that failed (e.g. send an notification to a maintenance technician via an email or any other relevant other), etc.

[0115] Alternatively, or complementarily, not receiving the confirmation that the software module update completed successfully from a given remote device 100 within a pre-defined interval of time may also be interpreted by the management platform 200 as the indication that the software module update was not completed successfully, and appropriate action may be taken thereafter.

[0116] A person skilled in the art will readily understand that the method 400 can be adapted to handle any of the following implementations after execution of steps 405-420. Each selected remote device 100 sends either a confirmation of successful software module update completion or an indication of software module update failure. Each selected remote device 100 only sends a confirmation of successful software module update completion when applicable but does not send any indication in case of failure. Each selected remote device 100 only sends an indication of software module update failure when applicable but does not send any confirmation of successful software module update completion. Each selected remote device 100 does not send any feedback after attempting to perform the software module update.

[0117] Figure 3C illustrates the interactions between the management platform 200 and the remote devices 101 and 104, as illustrated in Figure 3A, going through the gateway 300. More generally, any communications related to the implementation of the method 400 (software module update requests, confirmations of successful update, indications of failed update, etc.) between the management platform 200 and the remote devices (101 , 102, 103, 104 and 105) connected to the gateway 300 go through the gateway 300. Optionally, as mentioned previously, the gateway 300 further provides protocol conversion capabilities between protocols used by the management platform 200 and protocols used by the remote devices (101 , 102, 103, 104 and 105) for implementing the method 400. For example, thesoftware module update request sent by the management platform 200 uses one or more protocols not supported by the remote devices. The gateway 300 converts the software module update request to use other protocol(s) supported by the remote devices, before forwarding to the remote devices. In another example, the confirmation of successful update (or the indication of failed update) sent by the remote devices uses one or more protocols not supported by the management platform 200. The gateway 300 converts the confirmation of successful update (or the indication of failed update) use other protocol(s) supported by the management platform 200, before forwarding to the management platform 200.

[0118] Steps 405, 410, 415 and 425 of the method 400 have been described as being performed by the management platform 200. However, in another implementations, these steps can be performed by a system comprising several entities. For example, the system comprises the management platform 200 and a database. Step 410 is performed (at least partially) by the database while the other steps are performed by the management platform 200. In another example, the system comprises the management platform 200 and a legacy building management platform. Step 410 is performed (at least partially) by the legacy building management platform while the other steps are performed by the management platform 200.

[0119] Although the present disclosure has been described hereinabove by way of non-restrictive, illustrative embodiments thereof, these embodiments may be modified at will within the scope of the appended claims without departing from the spirit and nature of the present disclosure.

Claims

Claims1. A method for performing software module update on remote devices, the method comprising: identifying the remote devices with the software module to be updated located in one area; selecting a subset of the remote devices located in the one area, the selecting of the subset being based on at least one of the following: a building where the remote devices are located, a floor where the remote devices are located in the building, a type of remote device, a type of appliance controlled by the remote device, a type of room where the remote device is located, and an occupancy level of the room where the remote device is located; and sending a software module update request to the selected subset of the remote devices.

2. The method of claim 1 , wherein the identifying of the remote devices with the software module to be updated is performed by one of the following: a building management platform, a building management system or a database.

3. The method of claim 1 to 2, wherein the identifying of the remote devices with the software module to be updated is performed based on any of the following: an IP address of the remote devices and an IP address of a gateway through which the remote devices communicate.

4. The method of any of claims 1 to 3, wherein the one area is identified by any of the following: Global Positioning System (GPS) coordinates, postal code, area code, street address, floor number, IP address and network address.

5. The method of claims 1 to 4, wherein the software module update request comprises at least one of the following: a software code for performing the software module update, information related to the software module to be updated, and information for downloading the software code.

6. The method of any of claims 1 to 5, further comprising receiving from each selected remote device a confirmation that the software module update completed successfully.

7. The method of any of claims 1 to 6, further comprising: upon confirmation that the software module update completed successfully for the selected remote devices, selecting a subsequent subset of the remote devices located in the one area, sending the software module update request to the subsequent subset of the remote devices and receiving from each remote device of the subsequent subset of the remote devices the confirmation that the software module update completed successfully.

8. The method of any of claims 1 to 7, further comprising receiving from at least one of the selected remote devices an indication that the software module update failed.

9. The method of any of claims 1 to 8, further comprising: upon reception of an indication that the software module update failed for at least one of the selected remote devices, resending the software module update request to the at least one of the selected remote devices for which the software module update failed.

10. The method of any of claims 1 to 9, wherein the software module to be updated is one of multiple software modules executed by the remote devices.11 . The method of any of claims 1 to 10, wherein the software module to be updated is a firmware executed by the remote devices.

12. The method of any of claims 1 to 11 , wherein the type of remote device is one of the following: a thermostat, a Heating Ventilation and Air Conditioner (HVAC) controller, a light controller, a blind controller, a remote control, a sensor, and a controlled appliance controlled by a controller.

13. The method of any of claims 1 to 12, wherein the type of appliance controlled by the remote device is one of the following: a Heating Ventilation and Air Conditioner (HVAC) system, a refrigeration system, a security system, a light system, and a blind control system.

14. A management platform for performing any of claims 1 to 13.

15. A system for performing the method of any of claims 1 to 13.