Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
UNIQUE CODE GENERATION FOR LOCK CONFIGURATION
Document Type and Number:
WIPO Patent Application WO/2022/098510
Kind Code:
A1
Abstract:
The present disclosure provides a configurable lock and methods and systems for configuring the same. An initialization input is obtained via an input interface of the lock. A unique code associated with the lock is generated and displayed by the lock responsive to the initialization input. The unique code is obtained at a code input device. The unique code is transmitted from the code input device to a remote server. A configuration command for the lock is generated by the remote server based on the unique code. The configuration command for the lock is transmitted from the remote server to configure the operation of the lock based on the configuration command. The operation of the lock is configured based on the configuration command.

More Like This:
Inventors:
RHOADS JOHN (US)
Application Number:
PCT/US2021/055721
Publication Date:
May 12, 2022
Filing Date:
October 20, 2021
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
DORMAKABA USA INC (US)
International Classes:
E05B49/00; G06F7/04; G07F9/00; H04L9/14; H04W12/08
Foreign References:
US20160036788A12016-02-04
US20110311052A12011-12-22
US6415386B12002-07-02
US20120229251A12012-09-13
Other References:
SCHLAGE: "How to create secure access codes for Schlage smart locks", SCHLAGECK, 19 September 2019 (2019-09-19), XP055938362, Retrieved from the Internet [retrieved on 20220705]
Attorney, Agent or Firm:
VIGUET, R., Ross (US)
Download PDF:
Claims:
CLAIMS

1. A method for configuring a lock, comprising: obtaining an initialization input via an input interface associated with the lock; generating and displaying a unique code associated with the lock responsive to the initialization input; obtaining a configuration command associated with the unique code from a remote server; and configuring operation of the lock based on the configuration command.

2. The method of claim 1, wherein the configuration command is based on at least one configuration parameter provided to the remote server.

3. The method of claim 1, wherein generating the unique code comprises selecting one of a plurality of unique codes based on the initialization input.

4. The method of claim 1, wherein displaying the unique code comprises displaying a machine-readable code based on the unique code.

5. A method for configuring a lock, comprising: obtaining a unique code associated with the lock; transmitting the unique code to a remote server; obtaining a configuration command for the lock from the remote server; and transmitting the configuration command to the lock to configure operation of the lock based on the configuration command.

6. The method of claim 5, wherein transmitting the unique code comprises transmitting a configuration request to the remote server, the configuration request comprising the unique code and at least one configuration parameter.

7. The method of claim 6, wherein transmitting the configuration request to the remote server comprises generating the at least one configuration parameter based on a setting of a user account associated with the lock.

8. The method of claim 5, wherein transmitting the configuration command to the lock comprises: modifying the configuration command obtained from the remote server based on a setting of a user account associated with the lock; and transmitting the modified configuration command to the lock to configure the operation of the lock based on the modified configuration command.

9. The method of claim 5, wherein obtaining the unique code comprises acquiring an image of a machine-readable code displayed by the lock.

10. A method for configuring a lock, comprising: obtaining a unique code associated with the lock from a code input device separate from the lock; generating a configuration command for the lock based on the unique code; and transmitting the configuration command to the lock to configure operation of the lock based on the configuration command.

11. The method of claim 10, wherein obtaining the unique code comprises obtaining a configuration request from the code input device, the configuration request comprising the unique code and at least one configuration parameter.

12. The method of claim 11, wherein generating the configuration command for the lock is based on the at least one configuration parameter.

13. The method of claim 12, wherein generating the configuration command for the lock based on the at least one configuration parameter comprises selecting a predetermined lock configuration based on the at least one configuration parameter.

14. The method of claim 13, comprising obtaining and storing the predetermined lock configuration based on input received from a user associated with the lock.

15. The method of claim 10, wherein transmitting the configuration command to the lock comprises transmitting the configuration command to the code input device to cause the code input device to configure the operation of the lock based on the configuration command.

16. The method of claim 10, comprising generating and storing a registration file associated with the lock based on the unique code.

Description:
UNIQUE CODE GENERATION FOR LOCK CONFIGURATION

CROSS-REFERENCE TO RELATED APPLICATION

[0001] This application claims the benefit of priority of U.S. Provisional Patent Application No. 63/110,473, filed November 6, 2020, which is hereby incorporated by reference in its entirety.

FIELD

[0002] The present disclosure relate generally to the field of physical locks.

BACKGROUND

[0003] The use of physical keys, in conjunction with physical locks, is widespread in various societies as tools for limiting or granting access to certain locations or certain goods, and keys have been used since antiquity. Keys may be used to lock doors or safes, or may work in association with locks of various types for securing objects of various types.

[0004] Modern physical locks incorporate a variety of moving mechanical and/or electronic elements which function to allow the lock to alternate between a locked state and an unlocked state. Certain locks may be operated by way of a key or other physical device. Certain other locks, referred to as electronic locks, may be operated by way of an input interface, such as a keypad, touch screen, or the like. A user enters a secret code via the input interface, which the lock processes to determine how the lock should respond, including whether to lock or unlock a locking mechanism. Locks which operate based on secret codes may be programmed in a variety of fashions, and may need to be configured or registered before their deployment.

[0005] Improvements are therefore desirable.

SUMMARY

[0006] In accordance with one aspect, there is provided a method for configuring a lock. An initialization input is obtained via an input interface associated with the lock. A unique code associated with the lock is generated and displayed responsive to the initialization input. A configuration command associated with the unique code is obtained from a remote server. Operation of the lock is configured based on the configuration command. [0007] In accordance with further aspect, there is provided a configurable lock. The configurable lock comprises a processor and a non-transitory computer-readable medium having instructions stored thereon. The instructions are executable by the processor for causing the configurable lock to perform: obtaining an initialization input via an input interface associated with the configurable lock; generating and displaying a unique code associated with the configurable lock responsive to the initialization input; obtaining a configuration command associated with the unique code from a remote server; and configuring operation of the configurable lock based on the configuration command.

[0008] In accordance with another aspect, there is provided a method for configuring a lock. A unique code associated with the lock is obtained; the unique code is transmitted to a remote server; a configuration command for the lock is obtained from the remote server; and the configuration command is transmitted to the lock to configure operation of the lock based on the configuration command.

[0009] In accordance with a further aspect, there is provided a mobile device. The mobile device comprises a processor and a non-transitory computer-readable medium having instructions stored thereon. The instructions are executable by the processor for causing the mobile device to perform: obtaining a unique code associated with the lock; transmitting the unique code to a remote server; obtaining a configuration command for the lock from the remote server; and transmitting the configuration command to the lock to configure operation of the lock based on the configuration command.

[0010] In accordance with another aspect, there is provided a method for configuring a lock. A unique code associated with the lock is obtained from a code input device separate from the lock; a configuration command for the lock is generated based on the unique code; and the configuration command is transmitted to the lock to configure operation of the lock based on the configuration command.

[0011] In accordance with a further aspect, there is provided a configuration server for configuring a lock. The configuration server comprises a processor and a non-transitory computer-readable medium having instructions stored thereon. The instructions are executable by the processor for causing the configuration server to perform: obtaining a unique code associated with the lock from a code input device separate from the lock; generating a configuration command for the lock based on the unique code; and transmitting the configuration command to the lock to configure operation of the lock based on the configuration command.

[0012] Many further features and combinations thereof concerning embodiments described herein will appear to those skilled in the art following a reading of the instant disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

[0013] In the figures:

[0014] FIG. 1 illustrates an example lock in an example use case.

[0015] FIG. 2 illustrates example unique code generation functionality of the lock of FIG. 1.

[0016] FIG. 3 illustrates an example registration and configuration process for the lock of FIG. 1.

[0017] FIG. 4 illustrates a block diagram of an example computer.

[0018] FIG. 5 illustrates an example method of configuring a lock.

DETAILED DESCRIPTION

[0019] With reference to FIG. 1, there is illustrated an example locking scenario 100 in which a display case 102 is secured with a lock 110. The display case 102 may be a cabinet, case, box, or any other type of container in which items of value, or which are otherwise desirable to secure, may be stored. For example, the display case 102 may have jewelry, electronic devices, or the like stored therein for presentation. The lock 110 ensures that unauthorized entities do not have access to the items stored within the display case 102.

[0020] The lock may include various mechanisms and/or electronic components which operate to lock or unlock the display case 102. In some embodiments, the lock 110 may include various mechanisms and/or electronic components within a main body 112 of the lock 110. This may include one or more deadbolts, one or more swing bolts, one or more slam bolts, one or more spring bolts, suitable combinations thereof, as well as any suitable mechanical elements for operating the same. This may also include one or more push buttons, keypads, digital screens, touch screens, or the like, and any other suitable token-based authentication systems. In some cases, the lock 110 comprises a bolt 114 which may be movable between an extended position and a retracted position, which causes the lock 110 to either lock or unlock the display case 102.

[0021] In some embodiments, the lock 110 may be locked or unlocked using a physical device, such as a key, a key card, or the like. The lock 110 may include a keyhole for insertion of the key, or a contactless scanner for reading the keycard. In some other embodiments, the lock 110 may be locked or unlocked using secret code or other input provided via an input interface of the lock 110, for instance the keypad 118. For example, the lock 110 may be locked in response to a locking command being entered via the keypad 118, and unlocked in response to the secret code being provided. Other embodiments are also considered.

[0022] The lock 110 may also include a display 116: the display 116 may include one or more segment displays (e.g. seven-segment displays), one or more dot-matrix displays, one or more video displays of any suitable type (e.g. liquid-crystal displays), or the like. In some embodiments, the display 116 is used to display information about the lock 110 and/or about inputs provided by a user, for instance via the keypad 118. For example, the display 116 may present a list of numbers entered via the keypad 118. By way of another example, the display 116 may display a time of day, and a list of users authorized to operate the lock 110. In some other embodiments, the display 116 may be used as an input interface: the lock 110 may eschew the keypad 118, and the display 116 may be a touchscreen or similar input device via which a user may operate the lock 110.

[0023] Although the present disclosure presents embodiments and examples in which the lock 110 is used to secure access to the display case 102, it should be noted that the methods, systems, and devices described herein may apply to locks 110 used in other contexts. For example, the present disclosure may be used in the context of safe locks used in safes or other secure storage elements. By way of another example, the present disclosure may be used in the context of secure access devices such as door locks or perimeter-monitoring devices. In addition, the following discussion focusses on embodiments of the lock 110 which include the keypad 118 as an input interface. It should be noted, however, that the methods, systems, and devices described herein may apply to locks 110 having different types of input interfaces, including (but not limited to) one or more touchscreens, one or more contactless scanners, one or more wireless communication interfaces, for instance a near-field communication (NFC) or Bluetooth® communication interface, or the like. [0024] With additional reference to FIG. 2, a configuration process for the lock 110 is illustrated. When the lock 110 is first installed, for instance within the display case 102, the lock 110 may be provisioned with a preliminary configuration, which may include a default secret code and, in some cases, other default functionality preprogrammed therein. For example, the lock 110 may be preprogrammed to have a default time between a lock command being entered and the lock 110 moving to a locked state. By way of another example, the lock 110 may be programmed with different user profiles: each user profile is associated with a respective secret code, and may be associated with different dates and/or times during which the users may operate the lock 110. For instance, a first user profile allows a first group of users to operate the lock 110 during a store’s standard operating hours, and a second user profile allows a second group of users to operate the lock 110 during times which include those outside the standard operating hours. An owner or operator of the lock 110 may wish to alter the configuration of the lock 110, including to change the secret code, to assign user profiles to the lock 110, to change the behaviour of the lock 110, or the like.

[0025] To configure the lock 110, a user may provide an initialization input to the lock 110. The initialization input may include one or more inputs provided by an input interface of the lock 110, for instance the keypad 118 and/or the display 116. For example, the initialization input may involve inputting a predetermined pattern via the keypad 118. By way of another example, the initialization input may involve pushing a reset button or the like, which may form part of the keypad 118, or may be separate therefrom (for instance, formed within the main body 112). By way of a further example, the initialization input may be provided via the display 116, which may be a touchscreen, and the user may provide additional information about the particular way in which the lock 110 should be initialized or otherwise configured.

[0026] In response to receiving the initialization input, the lock 110 is configured for generating and displaying a unique code, for instance via the display 116. The embodiment of FIG. 2 illustrates the unique code as a QR code 205, thought it should be noted that the unique code may be presented in a different manner. In some cases, the unique code is presented as a string of numbers, letters, or other alphanumeric code. In some other cases, the unique code may be presented as a barcode or other machine-readable code, as appropriate. Other ways of presenting the unique code are considered. [0027] In some embodiments, the QR code 205 encodes a serial number or other unique or pseudo-unique identifier associated with the lock 110, such that when the QR code 205 is read, the unique or pseudo-unique identifier may be obtained. In some cases, the unique or pseudo-unique identifier may be a serial number associated with the lock 110, which may be a string of numbers, a string of alphanumeric characters, or the like. In other cases, the unique code may be a randomly-generated value, which may be produced by a predetermined random number generator, and may be based on the serial number of the lock 110. In some other embodiments, the QR code 205 encodes additional information in addition to the unique code. For example, the QR code 205 may include a timestamp indicating a date and time at which the QR code 205 was generated. By way of another example, the QR code 205 may include additional input which was provided by a user as part of the initialization process.

[0028] The unique code is then obtained by a code input device; in the embodiment illustrated in FIG. 2, the QR code 205 is read by a mobile device 250, which may be a smartphone or any other suitable type of mobile device. For example, the mobile device 250 may acquire one or more images which include the QR code 205 via a camera thereof. The mobile device 250 then interprets the QR code 205 to extract information therefrom, including the unique code and, in certain cases, any other information provided as part of the initialization of the lock 110. In some embodiments, the mobile device 250 is provided with a particular application (“app”) or other software to extract information from the QR code 205. The app may be provided, for instance, by a manufacturer or distributor of the lock 110.

[0029] In some other embodiments, a different type of code input device is used. For example, the code input device may be a computer or other computing device (a desktop computer, a laptop, a tablet, or the like). The computing device may read the QR code 205, for instance via a camera thereof or coupled thereto. Alternatively, the computing device may be configured for obtaining the unique code in a different fashion. For example, the unique code may be provided as part of a barcode displayed by the display 116, and a barcode scanning peripheral coupled to the computing device may be used to read the barcode and obtain the unique code. By way of another example, the unique code may be provided as a string of alphanumeric characters representing a serial number associated with the lock 110, which may be entered by a user via a keyboard or other input device coupled to the computing device. Other approaches are also considered. [0030] The mobile device 250 is configured for providing the unique code (encoded in the QR code 205) to a server 210 (e.g., a remote server) as part of the configuration process for the lock 110. The mobile device 250 is communicatively coupled to the server 210 via any suitable communication networks, including one or more wired networks and/or one or more wireless networks (which may, for instance, include one or more cellular networks). The mobile device 250 may be configured for transmitting a configuration request to the server 210, which includes the unique code and, in some cases, any additional information encoded in the QR code 205. Additionally, in certain embodiments the mobile device 250 is configured for receiving additional input from a user, for instance via the aforementioned app. This may include receiving an indication of one or more configuration parameters for the lock 110 which are supplied by the user. In some cases, the user may have specified one or more default configuration parameters, for instance via the app. In the event that the user does not specify any particular parameters for the lock 110, the mobile device 250 may include the default configuration parameters as part of the configuration request. The configuration parameters may be incorporated in the configuration request in any suitable fashion.

[0031] The server 210 receives the configuration request from the mobile device 250, and is configured for generating one or more configuration commands for the lock 110. The configuration commands constitute instructions which are used, either by the lock 110 or by another device (e.g. the mobile device 250), to configure the lock 110. In some embodiments, the server 210 generates the configuration commands based on the unique code provided by the mobile device 250 (as encoded in the QR code 205). For example, the unique code may be indicative of a brand or model of the lock 110, and the server 210 generates the configuration commands based on the brand or model of the lock. For instance, the server 210 is provided with a plurality of predetermined lock configurations and selects one of the predetermined lock configurations based on the brand or model of the lock 110. In some other embodiments, the server 210 generates the configuration commands based on the configuration parameters provided by the mobile device 250 as part of the configuration request. For example, the configuration parameters may specify a secret code to be set for the lock 110. By way of another example, the configuration parameters may indicate that one or more user profiles should be created, associated with respective secret codes for operating the lock 110. [0032] In some embodiments, the server 210 is provided with one or more predetermined lock configurations which are stipulated by a particular user or entity, for instance a user who is configuring the lock 110. The user may specify, for instance via the app on the mobile device 250, a particular configuration for one or more locks 110. This may include establishing one or more user profiles, one or more secret codes, particular access times for user profiles and/or secret codes, or the like. When the configuration request is sent from the mobile device 250 to the server 210, it may include an indication of a predetermined lock configuration to be used for the lock 110, which may prompt the server 210 to produce the relevant configuration commands based on the predetermined lock configuration.

[0033] The server 210 produces the configuration commands in any suitable fashion based on the configuration parameters received from the mobile device 250. In some embodiments, different configuration commands are produced for different aspects of the configuration of the lock 110. For instance, a first configuration command, or a first set of configuration commands, may be generated for configuring the lock to provide one or more user profiles, and a second configuration command, or a second set thereof, may be generated for configuring other aspects of the operation of the lock 110.

[0034] The configuration command is then provided by the server 210 to the lock 110. In some embodiments, the server 210 may be communicatively coupleable to the lock 110 substantially directly, for example over one or more wired and/or wireless communication networks. For instance, the lock 110 may be configured for being connected to a local area wireless network (e.g. Wi-Fi) via which the server 210 may provide the lock 110 with the configuration command. In some other embodiments, the server 210 provides the configuration command to the mobile device 250, for instance over the same (or substantially similar) communication networks as were used for the mobile device 250 to provide the configuration request to the server 210. The mobile device 250 may then provide the configuration command to the lock 110 over one or more wireless communication interfaces or over one or more wired communication interfaces, as appropriate.

[0035] When the lock 110 receives the configuration command, whether from the server 210 or from the mobile device 250, the lock 110 processes the configuration command to configure, or reconfigure, itself in accordance with the configuration command. For example, the configuration command may specify a new secret code for the lock 110, and the lock 110 may update its configuration settings in order to set the new secret code as the secret code for operating the lock 110. By way of another example, the configuration command may specify one or more user profiles to be instituted for the lock 110, and the lock 110 may update its configuration settings to institute the specified user profiles. Other configuration commands may result in the lock 110 modifying its configuration settings in other fashions, such that the operation of the lock 110 is configured to match or align with that which is specified in the configuration command.

[0036] In some embodiments, the server 210 is also configured for performing a registration process for the lock 110. The lock 110 may be provided by a manufacturer or distributor that wishes to offer a warranty on the lock 110, which may include an offer to service, repair, and/or replace the lock 110 in the event of breakage or malfunction. The configuration request provided by the mobile device 250 may therefore include an indication of the owner or operator of the lock, and a request to register the lock 110 with the manufacturer or distributor. For instance, the configuration request may include a legal name or other identifier of the owner or operator of the lock 110, an associated address, a proof of purchase of the lock 110, and any other suitable information for registration of the lock 110.

[0037] The server 210 may therefore create a registration certificate, which may be a digital file, or any other suitable record of registration of the lock 110, which may include the information provided as part of the configuration request. The registration certificate may be used as a proof of purchase or ownership for warranty-related issues, and may additionally serve as a marker indicating the start of a warranty period. In some embodiments, the server 210 may maintain the registration certificate, for instance in a database operated by or coupled to the server 210. In some cases, the server 210 may transmit the registration certificate, or a copy thereof, to the mobile device 250 and/or to the lock 110, for instance concurrently with the configuration command. In some embodiments, the registration certificate includes the unique code provided by the lock 110 during the configuration process and provided to the server 210 by the mobile device 250. In some other embodiments, the registration certificate includes a separate unique code, which may be based on the unique code provided by the lock 110, based on a timestamp of the configuration request, or any other suitable information. This separate unique code may thereafter be used by the manufacturer or distributor to confirm the identity of the lock 110 during a service, repair, and/or replacement operation. [0038] It should be noted that the configuration of the lock 110 may be performed at any suitable time, and may be performed any suitable number of times. Indeed, although the present discussion references notions such as initialization and configuration of the lock 110, the lock 110 may be initialized (or reinitialized) and configured (or reconfigured) any suitable number of times and at any suitable time, as appropriate. For example, the lock 110 may be reconfigured following sale or resale thereof to a new owner or operator. By way of another example, the lock 110 may be reinitialized and reconfigured periodically, for instance once a year, or once every few years, as a safety precaution against the secret code being exposed to non-authorized persons. Additionally, in some embodiments, the lock 110 is configured for performing one or more actions following configuration, such as activating the locking mechanism one or more times, displaying a message via the display 116 or via another element of the lock 110, or the like. For example, the lock 110 first locks, then unlocks itself, to indicate to the user that the configuration has been successfully performed.

[0039] With reference to FIG. 3, an embodiment of the configuration process for the lock 110 is illustrated. Following an initialization of the lock 110, the lock 110 produces a unique code 302, for instance the QR code 205. The unique code 302 is provided to a code input device 310. The code input device 310 may be any suitable type of computing device, for instance the mobile device 250. In some embodiments, the code input device 310 obtains the unique code 302 by scanning the QR code 205, or another machine readable code, for instance a barcode. In some other embodiments, the code input device 310 obtains the unique code 302 over a wired and/or wireless communication interfaces, for instance a near-field communication (NFC) or Bluetooth® communication interface. In some further embodiments, the unique code 302 is provided to the code input device 310 by a user of the code input device 310 via an input interface thereof, for instance a keyboard, touchscreen, or the like.

[0040] The code input device 310 transmits a configuration request 312 to a server, for instance the server 210, over any suitable wired and/or wireless communication network. The configuration request 312 may include part or all of the unique code 302. In some embodiments, the configuration request 312 also includes one or more configuration parameters, which provide information on the way in which the operation of the lock 110 should be configured (e.g. a secret code, the type of user profiles, etc.). The configuration parameters may be predetermined default configuration parameters, parameters provided by the lock 110 to the code input device 310, parameters provided by a user via an app or other software of the code input device 310, or any suitable combination thereof.

[0041] The server 210 receives the configuration request 312 from the code input device 310. In some embodiments, the server 210 is implemented as two servers: a registration server 212 and a configuration server 214. The configuration request 312 is first provided to the registration server 212. The registration server 212 is configured for registering the lock 110, for instance by creating a registration certificate based on the unique code 302. In some embodiments, the registration certificate is stored within a database of the server 212. In some embodiments, the registration certificate is provided to the lock 110, for instance by the configuration server 214. As a result, the database in which the registration certificate is stored may be accessible to the configuration server 214, and/or the registration server 212 may provide the registration certificate to the configuration server 214.

[0042] The configuration request 312 is also provided to, or made available to, the configuration server 214. The configuration server 214 is configured for producing one or more configuration commands to be provided to the lock 110 for configuring the operation thereof. In some embodiments, the configuration server 214 generates configuration commands 322 which are provided from the configuration server 214 to the lock 110. The configuration commands 322 are transmitted to the lock 110 over any suitable communication network. The lock 110, after receiving the configuration commands 322, configures itself in accordance with the configuration commands 322, which may include changing a secret code for the lock 110, instituting one or more user profiles, updating existing user profiles, or the like.

[0043] In some other embodiments, the configuration server 214 generates the configuration commands 324 which are provided from the configuration server 214 to the code input device 310. The configuration commands 324 are transmitted to the code input device 310 over any suitable communication network. The code input device 310, after receiving the configuration commands 324, is configured for retransferring the configuration commands 324 to the lock 110, for instance over a short-range communication network. Alternatively, the code input device 310 may modify the configuration commands 324 and produce modified configuration commands 314, which are then transmitted to the lock 110. For instance, the configuration commands 324 provided by the configuration server 214 may be default configuration commands for the lock 110 (for instance based on the brand or model of the lock 110). The code input device 310 may then modify the default configuration commands based on configuration parameters provided by the user to the code input device 310. The code input device 310 may solicit input from the user regarding the configuration parameters to be used, or may use predetermined parameters previously stored within or provided to the code input device 310. The lock 110, after receiving the configuration commands 324, or the modified configuration commands 314, configures itself in accordance with the received configuration commands 324 or 314.

[0044] It should be noted that in some other embodiments, the device which receives the configuration commands 324 may be a device different from the code input device 310. For instance, the device which receives the unique code 302 may be a first device, in this case the code input device 310, and a second, separate device may receive the configuration commands 324 from the configuration server 214. For example, the code input device 310 may be a desktop computer or similar computing device. The second device, which receives the configuration commands 324 from the configuration server 214 and provides them (or the modified configuration commands 314) to the lock 110 may be a handheld or mobile device, such as the mobile device 250. Other embodiments are also considered.

[0045] With reference to FIG. 4, at least part of certain embodiments of the devices, systems and methods described herein may be implemented in a combination of both hardware and software. For instance, part or all of the lock 110, the mobile device 250 and the app run thereon, and the server 210 may be implemented in a combination of both hardware and software. These embodiments may be implemented on programmable computers, each computer including at least one processor, a data storage system (including volatile memory or non-volatile memory or other data storage elements or a combination thereof), and at least one communication interface.

[0046] Program code is applied to input data to perform the functions described herein and to generate output information. The output information is applied to one or more output devices. In some embodiments, the communication interface may be a network communication interface. In embodiments in which elements may be combined, the communication interface may be a software communication interface, such as those for interprocess communication. In still other embodiments, there may be a combination of communication interfaces implemented as hardware, software, and combination thereof. [0047] FIG. 4 is a schematic diagram of an example computing device 410. As depicted, computing device 410 includes at least one processor 412, a memory 414 storing instructions 416, and at least one I/O interface (illustrated as ‘Inputs’ and ‘Outputs’). For simplicity only one computing device 410 is shown but the system may include more computing devices 410 operable by users to access remote network resources and exchange data. The computing devices 410 may be the same or different types of devices. The elements of the computing device 410 may be connected in various ways including directly coupled, indirectly coupled via a network, and distributed over a wide geographic area and connected via a network (which may be referred to as “cloud computing”).

[0048] Each processor 412 may be, for example, any type of general-purpose microprocessor or microcontroller, a digital signal processing (DSP) processor, an integrated circuit, a field programmable gate array (FPGA), a reconfigurable processor, a programmable read-only memory (PROM), or any combination thereof.

[0049] Memory 414 may include a suitable combination of any type of computer memory that is located either internally or externally such as, for example, random-access memory (RAM), read-only memory (ROM), compact disc read-only memory (CDROM), electro- optical memory, magneto-optical memory, erasable programmable read-only memory (EPROM), and electrically-erasable programmable read-only memory (EEPROM), Ferroelectric RAM (FRAM) or the like.

[0050] The I/O interface enables the computing device 410 to interconnect with one or more input devices, such as a keyboard, mouse, camera, touch screen and a microphone, or with one or more output devices such as a display screen and a speaker.

[0051] In some embodiments, the computing device 410 includes one or more network interfaces to enable the computing device 410 to communicate with other components, to exchange data with other components, to access and connect to network resources, to serve applications, and perform other computing applications by connecting to a network (or multiple networks) capable of carrying data including the Internet, Ethernet, plain old telephone service (POTS) line, public switch telephone network (PSTN), integrated services digital network (ISDN), digital subscriber line (DSL), coaxial cable, fiber optics, satellite, mobile, wireless (e.g. Wi-Fi, WiMAX), SS7 signaling network, fixed line, local area network, wide area network, and others, including any combination of these. [0052] Throughout the present disclosure, numerous references may be made regarding servers, services, interfaces, portals, platforms, or other systems formed from computing devices. It should be appreciated that the use of such terms is deemed to represent one or more computing devices having at least one processor configured to execute software instructions stored on a computer readable tangible, non-transitory medium. For example, a server can include one or more computers operating as a web server, database server, or other type of computer server in a manner to fulfill described roles, responsibilities, or functions.

[0053] Various embodiments may be in the form of a software product. The software product may be stored in a non-volatile or non-transitory storage medium, which can be a compact disk read-only memory (CD-ROM), a USB flash disk, or a removable hard disk. The software product includes a number of instructions that enable a computer device (personal computer, server, or network device) to execute the methods provided by the embodiments.

[0054] The embodiments described herein are implemented by physical computer hardware, including computing devices, servers, receivers, transmitters, processors, memory, displays, and networks. The embodiments described herein provide useful physical machines and particularly configured computer hardware arrangements. The embodiments described herein are directed to electronic machines and methods implemented by electronic machines adapted for processing and transforming electromagnetic signals which represent various types of information. The embodiments described herein pervasively and integrally relate to machines, and their uses; and the embodiments described herein have no meaning or practical applicability outside their use with computer hardware, machines, and various hardware components. Substituting the physical hardware particularly configured to implement various acts for non-physical hardware, using mental steps for example, may substantially affect the way the embodiments work. Such computer hardware limitations are clearly essential elements of the embodiments described herein, and they cannot be omitted or substituted for mental means without having a material effect on the operation and structure of the embodiments described herein. The computer hardware is essential to implement the various embodiments described herein and is not merely used to perform steps expeditiously and in an efficient manner.

[0055] For example, and without limitation, the computing device 410 may be a server, network appliance, embedded device, computer expansion module, personal computer, laptop, personal data assistant, cellular telephone, smartphone device, UMPC tablets, video display terminal, gaming console, electronic reading device, and wireless hypermedia device or any other computing device capable of being configured to carry out the methods described herein.

[0056] With reference to FIG. 5, a method 500 for configuring a lock, for instance the lock 100, is provided. At block 502, the method 500 includes obtaining, at the lock 110, an initialization input via an input interface, for instance the keypad 118 or the display 116. The initialization input may be a predetermined pattern input via the keypad 118, which signals to the lock 110 that one or more configuration commands are going to be provided to the lock 110. At block 504, the method 500 includes generating and displaying, at the lock 110, a unique code associated with the lock 110 responsive to the initialization input. For example, the lock 110 may generate and display the QR code 205 via the display 116, which encodes a unique code associated with the lock 110.

[0057] At block 506, the method 500 includes obtaining, at a code input device (e.g. the code input device 310), the unique code, for instance via the QR code 205. In some embodiments, the code input device 310 is embodied as the mobile device 250, which scans the QR code 205 via a camera thereof in order to obtain the unique code encoded therein. At block 508, the method 500 includes transmitting, from the code input device 310, the unique code to a remote server, for instance the server 210. The unique code may be provided by the code input device 310 to the server 210 as part of a configuration request, may include additional information, for instance one or more configuration parameters for the server 210. The code input device 310 and the server 210 may communicate over any suitable communication channel or network, which may include one or more wired networks and/or one or more wireless networks.

[0058] At block 510, the method 500 includes generating, at the remote server 210, a configuration command for the lock 110 based on the unique code. The configuration command comprises instructions which are used to configure the operation of the lock 110, and may be generated by the remote server based on one or more predetermined lock configurations, based on the unique code provided by the code input device 310, and/or based on any configuration parameters. In some embodiments, the remote server 210 may also register the lock, for instance by producing a registration certification, which may be stored by the remote server, communicated to the code input device 310, and/or communicated to the lock 110.

[0059] At block 512, the method 500 includes transmitting, from the remote server 210, the configuration command for the lock 110 to configure operation of the lock based on the configuration command. In some embodiments, the configuration command is transmitted to the lock 110 substantially directly; in some other embodiments, the configuration command is transmitted to the code input device 310, or to another device separate from the lock 110, before being transmitted to the lock 110. At block 514, the method 500 includes configuring the operation of the lock 110 based on the configuration command. The lock may processes the configuration command to configure, or reconfigure, itself in accordance with the configuration command, for instance to set a new secret code, to add new user profiles and/or update existing user profiles, or the like.

[0060] It should be noted that the method 500 may be repeated for a given lock 110 any suitable number of times and at any suitable time, as appropriate. Additionally, the method 500 described hereinabove includes process blocks performed by various elements, including the lock 110, the code input device 310, and the server 210. It should be noted that the method 500 may be subdivided into one or more sub-methods, each including one or more of the process blocks of the method 500, from the perspective of a single one of the lock 110, the code input device 310, and the server 210.

[0061] The present disclosure provides many example embodiments. Although each embodiment represents a single combination of inventive elements, other examples may include all possible combinations of the disclosed elements. Thus if one embodiment comprises elements A, B, and C, and a second embodiment comprises elements B and D, other remaining combinations of A, B, C, or D, may also be used. The term “connected” or "coupled to" may include both direct coupling (in which two elements that are coupled to each other contact each other) and indirect coupling (in which at least one additional element is located between the two elements).

[0062] Although the embodiments have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the scope as defined by the appended claims. It should be understood that the examples described above and illustrated herein are intended to be examples only. [0063] Moreover, the scope of the present application is not intended to be limited to the particular embodiments of the process, machine, manufacture, composition of matter, means, methods, process blocks, and steps described in the specification. As one of ordinary skill in the art will readily appreciate from the disclosure of the present invention, processes, machines, manufacture, compositions of matter, means, methods, process blocks, or steps, presently existing or later to be developed, that perform substantially the same function or achieve substantially the same result as the corresponding embodiments described herein may be utilized. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufacture, compositions of matter, means, methods, process blocks, or steps.