Patent Description:
With an increase in the environmental awareness growing day by day and several governments across the globe investing in clean energy initiatives, electric vehicles are becoming more and more popular across various fields such as the electric buses and electric taxis for mass transportation, the electric sanitation vehicles for maintaining public health and safety, personal electric vehicles, etc. With such a rapid boom in the number of electric vehicles there is an increasing demand in installation of electric vehicle charging stations all over the world.

Charging parks are typically equipped with plurality of charging stations, that is, charging devices of one or more kinds including AC chargers, DC fast chargers, contact chargers, non-contact or inductive chargers, etc. Secure integration of these chargers onto charging management systems is equally important so that the chargers deployed in these charging parks can be configured, monitored, and diagnosed. More particularly, integration of chargers on cloud-based charging management systems facilitates remote charger management in bulk numbers.

Some examples of charging management systems (CMSs) include a depot management system deployed at a charge point operator location that manages and optimizes daily operation of electric vehicles (EVs) plying to and from the depot; a device management system for configuring, commissioning and diagnosing health of the EV chargers continuously; and/or a customer relationship management (CRM) system managing information and billing associated with commercial/residential service care packages.

However, as mentioned above, the existing charging parks may have a significant number of legacy chargers also known as brownfield chargers already deployed on the field without any communication capability, that is, any connection to the charging management systems (CMSs). Typically, to onboard chargers, and especially the brownfield chargers, onto aforementioned cloud-based systems, a commissioning engineer has to travel to the site to configure and onboard each charger manually and independently to the CMSs.

Moreover, in future there is a possibility of applications such as mobile or web apps associated with the EV charger management growing, owing to various business models being introduced in the field. Thus, an EV charger either brownfield or greenfield would be required to support onboarding onto several systems automatically and in a secure manner so as to provide basic information about itself so that an application associated with management of the EV charger can connect, monitor, and control the charger remotely and simultaneously along with other chargers.

The conventional device onboarding systems and methods are largely known to support manual registration and onboarding where a charge point operator or an owner of a charging station or a charging park registers the chargers onto the CMSs. Some other systems and methods known in the art offer techniques of modeling chargers and/or charging stations in charging parks via injecting a private key or a unique device secret during manufacturing of the chargers. However, the prior art fails to disclose a system and a method that onboards not only new or greenfield chargers but also legacy or brownfield chargers onto the CMSs securely, automatically, and in bulk. More generally, in conventional systems, it is state of the art that a device can be a gateway device for multiple other devices. Nevertheless, using a device as gateway was never adapted to chargers. One example is <CIT>.

Accordingly, it is an object of the present disclosure to provide a system, an apparatus, and a method for onboarding of charging devices such as chargers onto a cloud-based system such as a charging management system, which ensure secure, automatic and bulk onboarding of the new as well as legacy devices, that is, chargers at a charging park.

The present disclosure achieves the aforementioned object by providing a method, a computer program product, a charging device onboarding system and a charging device that is a charger, for onboarding devices onto a cloud-based system according to claims <NUM>, <NUM>, <NUM>, and <NUM>. As used herein, "onboarding" refers to secure, automatic and bulk admission of a charging device onto a network such as a wireless network, wherein onboarding may include admission/integration and authentication of a device prior to joining the wireless network. Also used herein, "cloud-based system" refers to any system that resides in a cloud and manages the charging devices and/or activities associated with the charging devices.

According to the embodiment, the aforementioned charging device includes a charger capable of delivering charge to a vehicle. It may be appreciated that the term "vehicle" used herein refers to any automobile that has at least a partial electric drive and therefore, requires to be charged. The terms vehicle and electric vehicle (EV) are used interchangeably throughout the present disclosure. According to this embodiment, the cloud-based system is a charging management system (CMS), a customer relationship management system (CRMS), a charge point operator system (CPOS), and/or a device management system (DMS).

Advantageously, the aforementioned method, charging device onboarding system, computer program product and the parent charger, simultaneously onboard multiple charging devices such as the parent charger and the child charger(s) connected thereto, if any there-along, thus enabling bulk onboarding of the device(s) both greenfield as well as brownfield onto the cloud-based system(s) in a secure and automatic manner.

The above mentioned and other features of the invention will now be addressed with reference to the accompanying drawings of the present invention. The illustrated embodiments are intended to illustrate, but not limit the invention.

Various embodiments are described with reference to the drawings, wherein like reference numerals are used to refer like elements throughout. In the following description, for the purpose of explanation, numerous specific details are set forth in order to provide thorough understanding of one or more embodiments.

<FIG> illustrate a system 100A, 100B, comprising a device onboarding system <NUM>, in communication with a plurality of devices 101A-101N, 102A-102N for onboarding the devices 101A-101N, 102A-102N onto a cloud-based system <NUM>, according to various embodiments of the present disclosure. As shown in the <FIG>, the devices 101A-101N, 102A-102N are EV chargers deployed in a charging park <NUM>. The device onboarding system <NUM> is in communication with the chargers. This communication can be over a wired communication network or a wireless communication network, for example the communication network <NUM>.

The devices 101A-101N, 102A-102N, that is, the chargers include parent chargers 102A-102N and child chargers 101A-101N connected to the parent charger(s) 102A-102N. The parent charger(s) 102A-102N are in communication with the device onboarding system <NUM>. The device onboarding system <NUM> is also in communication with the cloud-based system <NUM> via the communication network <NUM>. The communication network <NUM> is, for example, a wired network, a wireless network, or a network formed from any combination thereof.

The device onboarding system <NUM> disclosed herein is installable on and accessible by a user device, for example, a personal computing device, a workstation, a client device, a network enabled computing device, any other suitable computing equipment, and combinations of multiple pieces of computing equipment being used by a user (not shown).

The device onboarding system <NUM> is configurable as a web-based platform, for example, a website hosted on a server or a network of servers, or, is implemented in the cloud computing environment as a cloud computing-based platform implemented as a service for onboarding the devices 101A-101N, 102A-102N onto the cloud-based system <NUM>. The device onboarding system <NUM> may have one or more users for example, a charge point operator managing the charging park <NUM>.

The device onboarding system <NUM> is also in communication with a device certification system <NUM> and a device database <NUM>, via the communication network <NUM>. The device certification system <NUM> stores therein a certificate associated with the devices 101A-101N, 102A-102N. The device database <NUM> stores therein device subscription data associated with the devices 101A-101N, 102A-102N.

The cloud-based system <NUM> is, for example, a charging management system (CMS) <NUM> which in turn is connected to one or more other cloud-based systems such as a charge point operator system (CPOS) 107A, a customer relationship management system (CRMS) 107B, and a device management system (DMS) 107C. In another example, the device onboarding system <NUM> is in direct communication with the aforementioned cloud-based systems 107A-107C.

As shown in <FIG>, the device onboarding system <NUM> onboards the parent charger 102A and the child chargers 101A-101N connected to the parent charger 102A onto the cloud-based system <NUM> in an automatic, secure and bulk manner.

As shown in <FIG>, the device onboarding system <NUM> onboards the parent chargers 102A-102N onto the cloud-based system <NUM> in an automatic, secure and bulk manner. The device onboarding system <NUM> obtains onboarding parameters associated with each of the devices 101A-101N, 102A-102N from the parent device, that is, the parent charger(s) 102A-102N.

The device onboarding system <NUM> comprises a non-transitory computer readable storage medium storing computer program instructions defined by the device onboarding system <NUM>, at least one processor communicatively coupled to the non-transitory computer readable storage medium, and executing the computer program instructions for bulk onboarding of the devices 101A-101N, 102A-102N onto the cloud-based system <NUM>. The device onboarding system <NUM> may include one or more module(s) (not shown) defining the computer program instructions.

The device onboarding system <NUM> dynamically obtains device verification data including at least a certificate associated with each of the devices 101A-101N, 102A-102N based on the onboarding parameters associated with the devices 101A-101N, 102A-102N, from the device certification system <NUM>.

The device onboarding system <NUM> validates the onboarding parameters based on the device verification data by comparing the certificate from the device verification data, for example, a second certificate, with the certificate from the onboarding parameters, for example, a first certificate, received from the parent charger(s) 102A-102N including the certificates associated with the devices 101A-101N, 102A-102N.

The device onboarding system <NUM> validates the devices 101A-101N, 102A-102N, when the comparison generates a match therebetween, and establishes a connection between the parent device, that is, the parent charger(s) 102A-102N, and the cloud-based system <NUM> over the communication network <NUM> for onboarding the devices 101A-101N, 102A-102N, that is, the parent charger(s) 102A-102N and the child chargers 101A-101N connected thereto if any, upon validation of the onboarding parameters.

The device onboarding system <NUM> obtains device subscription data associated with the devices 101A-101N, 102A-102N from the device database <NUM>. The device subscription data includes, for example, data associated with the device owner, his/her subscription, a capacity of the device such as the charger capacity, etc. The device onboarding system <NUM>, based on the device subscription data, automatically selects the cloud-based system(s) <NUM>, 107A, 107B, and/or 107C, etc., for onboarding the devices 101A-101N, 102A-102N. The device onboarding system <NUM>, thus enables multiple cloud-based systems <NUM>, 107A-107C to communicate with the devices 101A-101N, 102A-102N.

The device onboarding system <NUM> post establishing connection between the device(s) 101A-101N, 102A-102N and the cloud-based system <NUM> for onboarding of the devices 101A-101N, 102A-102N, selectively configures features of the devices 101A-101N, 102A-102N during the onboarding based on the device subscription data. The device onboarding system <NUM> enables the cloud-based system <NUM> with which the connection is established to configure those features of the device(s) 101A-101N, 102A-102N for which the device owner has subscribed to, based on the device subscription data. This enables accurate, automatic, and speedy configuration of the device(s).

<FIG> illustrate a system 100C, 100D, comprising a parent charger 102A-102N configured with a control unit <NUM> for onboarding onto a cloud-based system <NUM>, according to various embodiments of the present disclosure. The control unit <NUM> onboards the parent charger(s) 102A-102N and child chargers 101A-101N connected to the parent charger(s) 102A-102N, if any onto the cloud-based system <NUM>. The parent charger(s) 102A-102N are capable of delivering charge to a vehicle (not shown).

As shown in <FIG>, the parent charger 102A having the control unit <NUM>, is connected to multiple child chargers 101A-101N. The parent charger 102A is capable of communicating with the could-based system <NUM> via the communication network <NUM>. The control unit <NUM> onboards the parent charger 102A and the child chargers 101A-10N onto the cloud-based system <NUM> in an automatic, secure and bulk manner.

<FIG> shows multiple parent chargers 102A-102N each having a control unit <NUM> therewithin and capable of communicating with the could-based system <NUM> via the communication network <NUM>. The control unit <NUM> in each of the parent chargers 102A-102N onboards the parent chargers 102A-102N onto the cloud-based system <NUM> in an automatic, secure and bulk manner.

The control unit <NUM> obtains, onboarding parameters associated with the parent charger(s) 102A-102N and/or child charger(s) 101A-101N connected to the parent charger(s) 102A-102N, if any. The child charger(s) 101A-101N are capable of communicating with the cloud-based system <NUM> when connected to the parent charger(s) 102A-102N. The onboarding parameters include at least a first certificate imprinted into the parent charger(s) 102A-102N and the child charger(s) 101A-101N, during manufacturing of the chargers 101A-101N, 102A-102N.

The control unit <NUM> dynamically obtains device verification data based on the onboarding parameters. The device verification data includes at least a second certificate associated with the parent charger(s) 102A-102N and the child charger(s) 101A-101N connected thereto, if any. The control unit <NUM> obtains the second certificate from the device certification system <NUM>.

The control unit <NUM> validates the onboarding parameters based on the device verification data. The control unit <NUM> compares the second certificate from the device verification data with the first certificate from the onboarding parameters and validates the parent charger(s) 102A-102N and the child charger(s) 101A-101N connected thereto, if any, when the comparison generates a match therebetween.

The control unit <NUM> establishes a connection between the parent charger(s) 102A-102N and the cloud-based system <NUM> over the communication network <NUM> for onboarding of the parent charger(s) 102A-102N and the child charger(s) 101A-101N connected thereto, if any, upon validation of the onboarding parameters.

The control unit <NUM> obtains device subscription data associated with the parent charger(s) 102A-102N and the child charger(s) 101A-101N connected thereto if any, from the device database <NUM>, and selects the cloud-based system(s) <NUM>, 107A, 107B, and/or 107C, for onboarding the parent charger(s) 102A-102N and the child charger(s) 101A-101N based on the device subscription data.

The control unit <NUM>, during the onboarding, selectively configures features of the parent charger(s) 102A-102N and the child charger(s) 101A-101N connected thereto if any, based on the device subscription data.

<FIG> is a block diagram illustrating an architecture of a computer system <NUM> employed by the device onboarding system <NUM> shown in <FIG>, for onboarding devices 101A-101N, 102A-102N onto a cloud-based system <NUM>, according to an embodiment of the present disclosure.

The device onboarding system <NUM> employs the architecture of the computer system <NUM>, according to an embodiment of the present disclosure. The computer system <NUM> is programmable using a high-level computer programming language. The computer system <NUM> may be implemented using programmed and purposeful hardware. The computer system <NUM> comprises a processor <NUM>, a non-transitory computer readable storage medium such as a memory unit <NUM> for storing programs and data, an input/output (I/O) controller <NUM>, a network interface <NUM>, a data bus <NUM>, a display unit <NUM>, input devices <NUM>, a fixed media drive <NUM> such as a hard drive, a removable media drive <NUM> for receiving removable media, output devices <NUM>, etc..

The processor <NUM> refers to any one of microprocessors, central processing unit (CPU) devices, finite state machines, microcontrollers, digital signal processors, an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), etc., or any combination thereof, capable of executing computer programs or a series of commands, instructions, or state transitions. The processor <NUM> may also be implemented as a processor set comprising, for example, a general-purpose microprocessor and a math or graphics co-processor. The device onboarding system <NUM> disclosed herein is not limited to a computer system <NUM> employing a processor <NUM>. The computer system <NUM> may also employ a controller or a microcontroller. The processor <NUM> executes the computer program instructions defined by the device onboarding system <NUM>, for example, modules of the device onboarding system <NUM>.

The memory unit <NUM> is used for storing programs, applications, and data. For example, the computer program instructions defined by the device onboarding system <NUM> are stored in the memory unit <NUM> of the computer system <NUM>. The memory unit <NUM> is, for example, a random-access memory (RAM) or another type of dynamic storage device that stores information and instructions for execution by the processor <NUM>. The memory unit <NUM> also stores temporary variables and other intermediate information used during execution of the instructions by the processor <NUM>. The computer system <NUM> further comprises a read only memory (ROM) or another type of static storage device that stores static information and instructions for the processor <NUM>. The I/O controller <NUM> controls input actions and output actions performed by the device onboarding system <NUM>.

The network interface <NUM> enables connection of the computer system <NUM> to the communication network <NUM>. For example, the device onboarding system <NUM> connects to the communication network <NUM> via the network interface <NUM>. In an embodiment, the network interface <NUM> is provided as an interface card also referred to as a line card. The network interface <NUM> comprises, for example, interfaces using serial protocols, interfaces using parallel protocols, and Ethernet communication interfaces, interfaces based on wireless communications technology such as satellite technology, radio frequency (RF) technology, near field communication, etc. The data bus <NUM>, for example, may permit communications between the modules of device onboarding system <NUM>.

The display unit <NUM>, via the graphical user interface (GUI) (not shown) of the device onboarding system <NUM>, displays information such as the certificates, the device subscription data, etc. The display unit <NUM>, via the GUI, also displays information such as user interface elements including text fields, buttons, windows, etc., for allowing a user to provide his/her inputs such as trigger the onboarding of the devices 101A-101N, 102A-102N via a click of a button, etc. The display unit <NUM> comprises, for example, a liquid crystal display, a plasma display, an organic light emitting diode (OLED) based display, etc. The input devices <NUM> are used for inputting data into the computer system <NUM>. The input devices <NUM> are, for example, a keyboard such as an alphanumeric keyboard, a touch sensitive display device, and/or any device capable of sensing a tactile input.

Computer applications and programs are used for operating the computer system <NUM>. The programs are loaded onto the fixed media drive <NUM> and into the memory unit <NUM> of the computer system <NUM> via the removable media drive <NUM>. In an embodiment, the computer applications and programs may be loaded directly via the communication network <NUM>. Computer applications and programs are executed by double clicking a related icon displayed on the display unit <NUM> using one of the input devices <NUM>. The output devices <NUM> output the results of operations performed by the device onboarding system <NUM>. For example, the device onboarding system <NUM> provides graphical representation of the devices 101A-101N, 102A-102N ready to be onboarded, that is, in communication with the cloud-based system <NUM>, using the output devices <NUM>.

The processor <NUM> executes an operating system. The computer system <NUM> employs the operating system for performing multiple tasks. The operating system is responsible for management and coordination of activities and sharing of resources of the computer system <NUM>. The operating system further manages security of the computer system <NUM>, peripheral devices connected to the computer system <NUM>, and network connections. The operating system employed on the computer system <NUM> recognizes, for example, inputs provided by the users using one of the input devices <NUM>, the output display, files, and directories stored locally on the fixed media drive <NUM>. The operating system on the computer system <NUM> executes different programs using the processor <NUM>. The processor <NUM> and the operating system together define a computer platform for which application programs in high level programming languages are written.

The processor <NUM> of the computer system <NUM> employed by the device onboarding system <NUM> retrieves instructions defined by the device onboarding system <NUM> for onboarding the devices 101A-101N, 102A-102N as disclosed in the detailed description of <FIG>. The processor <NUM> retrieves instructions from the memory unit <NUM>. A program counter determines the location of the instructions in the memory unit <NUM>. The program counter stores a number that identifies the current position in the program of each of instructions defined by the device onboarding system <NUM>. The instructions fetched by the processor <NUM> from the memory unit <NUM> after being processed are decoded. The instructions are stored in an instruction register in the processor <NUM>. After processing and decoding, the processor <NUM> executes the instructions, thereby performing one or more processes defined by those instructions.

At the time of execution, the instructions stored in the instruction register are examined to determine the operations to be performed. The processor <NUM> then performs the specified operations. The operations comprise arithmetic operations and logic operations. The operating system performs multiple routines for performing several tasks required to assign the input devices <NUM>, the output devices <NUM>, and memory for execution of the computer program instructions defined by the device onboarding system <NUM>. The tasks performed by the operating system comprise, for example, assigning memory to the computer program instructions, and to data used by the device onboarding system <NUM>, moving data between the memory unit <NUM> and disk units, and handling input/output operations. The operating system performs the tasks on request by the operations and after performing the tasks, the operating system transfers the execution control back to the processor <NUM>. The processor <NUM> continues the execution to obtain one or more outputs. The outputs of the execution of the computer program instructions are displayed to the user on the GUI.

For purposes of illustration, the detailed description refers to the device onboarding system <NUM> being run locally on the computer system <NUM>, however the scope of the present invention is not limited to the device onboarding system <NUM> being run locally on the computer system <NUM> via the operating system and the processor <NUM>, but may be extended to run remotely over the communication network <NUM> by employing a web browser and a remote server, a mobile phone, or other electronic devices. One or more portions of the computer system <NUM> may be distributed across one or more computer systems (not shown) coupled to the communication network <NUM>.

Disclosed herein is also a computer program product comprising a non-transitory computer readable storage medium that stores computer program codes comprising instructions executable by at least one processor <NUM> for onboarding the devices 101A-101N, 102A-102N onto the cloud-based system <NUM>, as disclosed in aforementioned description.

The computer program product comprises a first computer program code for obtaining, onboarding parameters associated with each of the devices 101A-101N, 102A-102N including at least one parent device 102A-102N capable of communicating with the cloud-based system <NUM>; a second compute program code for dynamically obtaining device verification data based on the onboarding parameters associated with the devices 101A-101N, 102A-102N, the device verification data comprises at least a certificate associated with each of the devices 101A-101N, 102A-102N; a third computer program code for validating the onboarding parameters based on the device verification data; and fourth computer program code for establishing a connection between the at least one parent device 102A-102N and the cloud-based system <NUM> over the communication network <NUM> for onboarding the devices 101A-101N, 102A-102N, upon validation of the onboarding parameters.

The second computer program code comprises a fifth computer program code for obtaining the certificate associated with the at least one parent device 102A-102N and/or chid devices 101A-101N connected thereto, if any, from a device certification system <NUM>.

The third computer program code comprises a sixth computer program code for comparing the certificate from the device verification data with a certificate from the onboarding parameters; and a seventh computer program code for validating the devices 101A-101N, 102A-102N when the comparison generates a match therebetween.

The fourth computer program code comprises an eighth computer program code for obtaining device subscription data associated with the devices 101A-101N, 102A-102N from the device database <NUM>; and a ninth computer program code for selecting the cloud-based system <NUM> for onboarding the devices 101A-101N, 102A-102N based on the device subscription data.

The computer program product also comprises a tenth computer program code for selectively configuring features of the devices 101A-101N, 102A-102N during the onboarding based on the device subscription data.

In an embodiment, a single piece of computer program code comprising computer executable instructions, performs one or more steps of the method according to the present disclosure, for bulk onboarding of the devices 101A-101N, 102A-102N onto the cloud-based system <NUM>. The computer program codes comprising computer executable instructions are embodied on the non-transitory computer readable storage medium. The processor <NUM> of the computer system <NUM> retrieves these computer executable instructions and executes them. When the computer executable instructions are executed by the processor <NUM>, the computer executable instructions cause the processor <NUM> to perform the steps of the computer implemented method for bulk onboarding of the devices 101A-101N, 102A-102N onto the cloud-based system <NUM>.

<FIG> illustrates a process flowchart <NUM> of a method for onboarding devices 101A-101N, 102A-102N onto a cloud-based system <NUM>, according to an embodiment of the present disclosure.

The method, at step <NUM>, obtains, onboarding parameters associated with each of the devices 101A-101N, 102A-102N as shown in <FIG>. The onboarding parameters include a serial number, a media access control (MAC) address, a model number, manufacturer data, a public key such as a secure shell (SSH) encryption key, and/or a certificate imprinted into the devices 101A-101N, 102A-102N during manufacturing of the devices 101A-101N, 102A-102N.

The devices 101A-101N, 102A-102N include at least one parent device 102A-102N capable of communicating with the cloud-based system <NUM>, over a communication network <NUM>. The devices 101A-101N, 102A-102N include child device(s) 101A-101N capable of communicating with the cloud-based system <NUM> when connected to the parent device 102A-102N. For example, each parent device 102A-102N may have several child devices 101A-101N connected thereto. The child device(s) 101A-101N are capable of communicating with the parent device 102A-102N via a local area network (LAN). Thus, the onboarding parameters of the child devices 101A-101N are obtained via the parent device(s) 102A-102N to which the child device 101A-101N are connected. The parent device 102A-102N is a greenfield device. The child device 101A-101N is brownfield device. The method obtains the onboarding parameters from the parent device 102A-102N, associated with the parent device 102A-102N and/or the child device(s) 101A-101N connected thereto, if any.

The method at step <NUM>, simultaneously obtains the onboarding parameters from the parent device(s) 102A-102N.

At step <NUM>, the method dynamically obtains device verification data based on the onboarding parameters associated with the devices 101A-101N, 102A-102N. The device verification data includes at least a certificate associated with each of the devices 101A-101N, 102A-102N. The method obtains the certificate associated with the parent device 102A-102N and the child device(s) 101A-101N connected thereto, if any, from a device certification system <NUM>. The method obtains the device verification data dynamically, in that, upon obtaining the onboarding parameters, the device verification data is automatically obtained without any manual intervention. For example, at step <NUM>, the method extracts the serial number of each of the devices 101A-101N, 102A-102N from the onboarding parameters and based on the serial number, the method obtains the certificates for corresponding devices 101A-101N, 102A-102N from the device verification system <NUM>.

At step <NUM>, the method validates the onboarding parameters based on the device verification data. At step 303A, the method compares the certificate from the device verification data with the certificate from the onboarding parameters. At step 303B, the method validates the devices 101A-101N, 102A-102N, that is, the authenticity of the devices 101A-101N, 102A-102N, when the comparison generates a match therebetween. Else, when there is a mismatch, at step 303C, the method generates an error notification signifying authenticity of the devices 101A-101N, 102A-102N not confirmed thus, aborting the automatic onboarding of the devices 101A-101N, 102A-102N. Advantageously, the method performs this automatically so as to have a manual intervention free authentication of the device(s) 101A-101N, 102A-102N prior to onboarding thereby, avoiding erroneous and cumbersome authentication procedure.

At step <NUM>, the method establishes a connection between the parent device 102A-102N and the cloud-based system <NUM> over the communication network <NUM> for onboarding the devices 101A-101N, 102A-102N, that is, the parent device 102A-102N and the child device(s) 101A-101N connected thereto if any, upon validation of the onboarding parameters.

The method, at step 304A, obtains device subscription data associated with the devices 101A-101N, 102A-102N from the device database <NUM>. The device subscription data includes, for example, data associated with the device owner, his/her subscription, a capacity of the device 101A-101N, 102A-102N, etc. The method, at step 304B, based on the device subscription data, automatically selects the cloud-based system <NUM>, 107A, 107B, and/or 107C for onboarding the devices 101A-101N, 102A-102N. For example, the method selects the CMS <NUM>, the CPOS 107A, the CRMS 107B, and/or the DMS 107C, etc., for establishing connection with the device(s) 101A-101N, 102A-102N according to the device subscription data. The method thus enables multiple cloud-based systems <NUM>, 107A-107C to communicate with the devices 101A-101N, 102A-102N simultaneously.

At step <NUM>, the method post establishing connection between the device(s) 101A-101N, 102A-102N and the cloud-based system <NUM>, 107A-107C for onboarding of the devices 101A-101N, 102A-102N, selectively configures features of the devices 101A-101N, 102A-102N during the onboarding based on the device subscription data. The method enables the cloud-based system <NUM>, 107A-107C with which the connection is established to configure those features of the device(s) 101A-101N, 102A-102N for which the device owner has subscribed to, based on the device subscription data. This enables accurate, automatic, and speedy configuration of the device(s).

At step <NUM>, the method stores the data such as the onboarding parameters, the device verification data, the device subscription data, the error notifications, etc., into the device database <NUM> for future reference, required, if any.

Where databases are described such as the device database <NUM>, it will be understood by one of ordinary skill in the art that (i) alternative database structures to those described may be readily employed, and (ii) other memory structures besides databases may be readily employed. Any illustrations or descriptions of any sample databases disclosed herein are illustrative arrangements for stored representations of information. Any number of other arrangements may be employed besides those suggested by tables illustrated in the drawings or elsewhere. Similarly, any illustrated entries of the databases represent exemplary information only; one of ordinary skill in the art will understand that the number and content of the entries can be different from those disclosed herein. Further, despite any depiction of the databases as tables, other formats including relational databases, object-based models, and/or distributed databases may be used to store and manipulate the data types disclosed herein. Likewise, object methods or behaviors of a database can be used to implement various processes such as those disclosed herein. In addition, the databases may, in a known manner, be stored locally or remotely from a device that accesses data in such a database. In embodiments where there are multiple databases in the system, the databases may be integrated to communicate with each other for enabling simultaneous updates of data linked across the databases, when there are any updates to the data in one of the databases.

The present disclosure can be configured to work in a network environment comprising one or more computers that are in communication with one or more devices via a network. The computers may communicate with the devices directly or indirectly, via a wired medium or a wireless medium such as the Internet, a local area network (LAN), a wide area network (WAN) or the Ethernet, a token ring, or via any appropriate communications mediums or combination of communications mediums. Each of the devices comprises processors, some examples of which are disclosed above, that are adapted to communicate with the computers. In an embodiment, each of the computers is equipped with a network communication device, for example, a network interface card, a modem, or other network connection device suitable for connecting to a network. Each of the computers and the devices executes an operating system, some examples of which are disclosed above. While the operating system may differ depending on the type of computer, the operating system will continue to provide the appropriate communications protocols to establish communication links with the network. Any number and type of machines may be in communication with the computers.

The present disclosure is not limited to a particular computer system platform, processor, operating system, or network. One or more aspects of the present disclosure may be distributed among one or more computer systems, for example, servers configured to provide one or more services to one or more client computers, or to perform a complete task in a distributed system. For example, one or more aspects of the present disclosure may be performed on a client-server system that comprises components distributed among one or more server systems that perform multiple functions according to various embodiments. These components comprise, for example, executable, intermediate, or interpreted code, which communicate over a network using a communication protocol. The present disclosure is not limited to be executable on any particular system or group of systems, and is not limited to any particular distributed architecture, network, or communication protocol.

Claim 1:
A method (<NUM>) for bulk onboarding of charging devices (101A-101N, 102A-102N) onto a cloud-based system (<NUM>), characterized by:
- obtaining onboarding parameters associated with each of the charging devices (101A-101N, 102A-102N), wherein the charging devices (101A-101N, 102A-102N) comprise at least one parent charging device (102A-102N) communicating with the cloud-based system (<NUM>), and wherein the onboarding parameters are obtained from the at least one parent charging device (102A-102N);
- dynamically obtaining charging device verification data based on the onboarding parameters associated with the charging devices (101A-101N, 102A-102N), wherein the charging device verification data comprises at least a certificate associated with each of the charging devices (101A-101N, 102A-102N);
- validating the onboarding parameters based on the charging device verification data; and
- establishing a connection between the at least one parent charging device (102A-102N) and the cloud-based system (<NUM>) over a communication network (<NUM>) for onboarding the charging devices (101A-101N, 102A-102N), upon validation of the onboarding parameters.