System and method for monitoring usage of functional facilities

By deploying detectors and client device mapping modules in functional facilities, real-time monitoring and analysis of facility usage is solved, and the problem of difficult to optimize the use of facilities in the existing technology is solved, achieving more efficient resource allocation and operational cost reduction.

CN114760583BActive Publication Date: 2025-04-11LOCATEE AG
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210257255.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2016-03-29
Filing Date
2017-03-28
Publication Date
2025-04-11
Estimated Expiration
2037-03-28

AI Technical Summary

Technical Problem

The existing technology is difficult to effectively monitor and optimize the use of functional facilities such as open offices, resulting in increased operating costs and inefficient resource utilization.

Method used

Multiple detectors and client device mapping modules are used to optimize facility management by detecting the existence and location of client devices.

Benefits of technology

Real-time monitoring and analysis of the use of functional facilities is realized, helping to optimize resource allocation, reduce operating costs, and improve facility utilization efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114760583B_ABST
    Figure CN114760583B_ABST
Patent Text Reader

Abstract

The present application relates to systems and methods for monitoring the use of functional facilities. The disclosed embodiments relate to a system for monitoring the use of a functional facility, the system comprising: a plurality of detectors for detecting the presence of at least one client device in the functional facility, and the detectors are geographically mapped in the functional facility; and a client device mapping module for determining the location of the at least one client device detected by one or more of the plurality of detectors. In addition, the present invention relates to a method for monitoring the use of a functional facility comprising one or more detectors, comprising the steps of: detecting an operable engagement between a detector deployed in the functional facility and a computerized client device; determining a location point of the computerized client device; and providing an output describing the detected operable engagement and information related to the determined location point.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the Chinese patent application with the application date of March 28, 2017, the international application number of PCT / EP2017 / 057243, the Chinese application number of 201780013008.3, and the invention name of “Device, system and method for monitoring the use of functional facilities”. Background Art

[0002] The management of a facility such as an open office involves the provision and allocation of sufficient resources for the use of one or more persons occupying the facility at different times. These resources may include, for example, office equipment, communication system layout, workspace (e.g. collaborative workspace), sanitary facilities, etc. Therefore, the occupancy rate of a facility is an important factor in estimating the cost of operating the facility and the lost rental income due to vacancy rate. Summary of the invention

[0003] Overview

[0004] Example 1 relates to a system for monitoring the use of a functional facility, comprising: (i) a plurality of detectors for detecting the presence of at least one client device in the functional facility, wherein the plurality of detectors are geographically mapped in the functional facility; and (ii) a client device mapping module for determining a location of the at least one client device detected by one or more of the plurality of detectors.

[0005] Example 2 includes the subject matter of Example 1, and optionally, wherein the client device mapping module is configured to perform the following steps: determining an estimate of a location point associated with a first client device, the first client device being associated with a user and wirelessly coupled to at least one of the plurality of detectors; detecting a wired LAN connection made by a second client device, the second client device being associated with the user, using at least another detector of the plurality of detectors; and determining a distance between the estimated location point associated with the first client device and a location associated with the at least another detector of the plurality of detectors; and if the distance is within a specific range, mapping the first client device to the location of the at least another detector of the plurality of detectors and associating the location with a corresponding classification category; and if the distance is outside a specific range, associating the location of the at least another detector of the plurality of detectors with another classification category.

[0006] Example 3 includes the subject matter of Example 1 or 2, and optionally, wherein the client device mapping module provides output indicating the usage of the functional facility during a time interval based on the location of the at least one client device in the functional facility during the time interval.

[0007] Example 4 includes the subject matter of any of Examples 1 to 3, and optionally, further comprises an anonymization module for anonymizing an identifier associated with a geographically mapped client device before providing an output indicative of the usage of the functionality during a time interval.

[0008] Example 5 includes the subject matter of any one of Examples 1 to 4, and optionally, further includes a wire-based detector mapping module for mapping the LAN connection to a port of a network switch, wherein the wire-based detector mapping module employs a caching process to perform the mapping of the LAN connection.

[0009] Example 6 includes the subject matter of any of Examples 1 to 5, and optionally, includes a monitoring engine operable to: (a) detect an operable engagement between a detector deployed in the functional facility and a computerized client device; (b) determine a location point of the computerized client device; and (c) provide output describing the detected operable engagement and information related to the determined location point.

[0010] Example 7 relates to a method for monitoring the use of a functional facility that includes one or more detectors, comprising the following steps: (1) detecting an operable engagement between a detector deployed in the functional facility and at least one computerized client device; (2) determining a location point of the at least one computerized client device; and (3) providing an output describing the detected operable engagement and information related to the estimated location point.

[0011] Example 8 includes the subject matter of Example 7, and optionally, further comprises determining a plurality of time intervals for a corresponding plurality of client devices, each of the time intervals indicating a dwelling duration of each client device at a respective estimated location point.

[0012] Example 9 includes the subject matter of Example 7, and optionally, applies filtering logic to the estimated location point to obtain location information for selecting the client device operable to wirelessly engage with a plurality of detectors.

[0013] Example 10 includes the subject matter of Example 9 and, optionally, performs a cluster analysis on data describing the estimated location points used to select the client device and the recorded associated timestamps of the estimated location points.

[0014] Example 11 includes the subject matter of any one of Examples 7 to 10, and optionally, includes providing a heat map indicating usage of an area in the functional facility during a time interval.

[0015] Example 12 relates to a computer program product having a program code for executing the method steps according to any one of Examples 7 to 11, wherein the computer program product is executed on a computer.

[0016] Example 13 relates to a computer program product which can be loaded into an internal storage device of a digital computer and comprises software code, by means of which the steps according to claims 7 to 11 are performed when the computer program product is loaded or run on a computer.

[0017] Example 14 relates to a computer program product directly loadable into the internal memory of a digital computer, comprising software code portions for performing the steps of Examples 7 to 11 when said product is run on a computer.

[0018] Example 15 relates to a computer program tangibly embodied in an information carrier, for example, in a non-transitory computer-readable or non-transitory machine-readable storage device and / or in a propagated signal, for performing or controlling the operations of the steps of Examples 7 to 12.

[0019] This summary introduces a selection of some concepts in a simplified form that will be further described in the following drawings and detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.

[0020] describe

[0021] Aspects of the embodiments relate to devices, systems and methods for monitoring and analyzing the use of functional facilities by individuals or users to allow, for example, estimating the operating costs of the functional facilities and, in response thereto, optionally automatically optimizing the parameters of the facilities. Optionally, aspects of the embodiments further relate to devices, systems and methods for determining the occupancy level (also: usage level) within the functional facility and / or at various locations of the functional facility during a selected timestamp and / or a selected time period.

[0022] In an embodiment, a system includes: (i) a plurality of detectors for detecting the presence of at least one client device in a functional facility, and the detectors are geographically mapped in the functional facility; and (ii) a client device mapping module for determining the location of at least one client device detected by one or more of the plurality of detectors. In addition, the present invention relates to a method for monitoring the use of a functional facility comprising one or more detectors, which in some embodiments includes the following steps: (1) detecting an operable engagement between a detector deployed in the functional facility and a computerized client device; (2) determining a location point of the computerized client device; and (3) providing an output describing the detected operable engagement and information related to the determined location point. Another aspect of the present invention relates to a computer program product for practicing the claimed method.

[0023] In one embodiment, the monitoring of the use of functional facilities can be based on the measurement of the dwell time of the client device at the estimated location point. Optionally, the monitoring of the use of functional facilities can be limited to the measured dwell time. Optionally, if the measured dwell time meets the dwell time standard, such as, for example, if the dwell time exceeds, for example, at least 3 minutes, at least 4 minutes, at least 5 minutes, at least 6 minutes, at least 7 minutes, at least 8 minutes, at least 9 minutes, at least 10 minutes, at least 20 minutes, or at least 30 minutes, at least 60 minutes or at least 120 minutes of the dwell time threshold, then the client device can be considered to "stay" at the estimated location point. Optionally, the dwell time that does not meet the dwell time standard, such as, for example, the dwell time that is lower than, for example, less than 3 minutes, less than 2 minutes, less than 1 minute or less than another dwell time threshold of 30 seconds, can be ignored or filtered out when determining the use of functional facilities. Exemplarily, the dwell time that does not meet the dwell time inclusion standard may not be considered to be long enough to establish that the corresponding position is actually "occupied" by the user. It should be noted that "not meeting the dwell time standard" can be optionally referred to as the condition that the dwell time does meet the "dwell time discard standard" in this article.

[0024] Optionally, the system may be operable to monitor the use of the functional facilities without tracking or needing to track the movement of the computerized client device between different estimated location points. In other words, the system may not collect information related to the movement path of the client device. Therefore, when monitoring the use of the functional facilities, information related to the instantaneous time location tuple that is not related to the dwell time may not be considered. Optionally, data describing location information related to a client device that substantially continuously changes its location may not be stored by the system or ignored by the system. Optionally, data describing instantaneous time location tuples that are not related to the dwell time may not be stored by the system and / or ignored by the system.

[0025] If, for example, the distance between two location points is at least 2 meters, at least 3 meters, at least 4 meters, at least 5 meters, at least 6 meters, at least 7 meters, at least 8 meters, at least 9 meters, at least 10 meters, at least 15 meters, at least 20 meters or at least 25 meters, the first estimated location point for which the client device is determined to be "staying" can be considered to be "different" from the second estimated location point for which the client device is later determined to be "staying".

[0026] It should be noted that the terms "estimate" and "determine", as well as grammatical variations thereof, may be used interchangeably.

[0027] In some embodiments, equipment, system and method can be used to monitor the use of hundreds (e.g., 200 or more) or thousands (e.g., at least 1000 or 2000) functional facilities simultaneously. In some embodiments, equipment, system and method can be used to operably provide output to its operator, and the output contains or represents the value related to the parameter of the use of the functional facilities recorded, for example, during the monitoring time period and / or at a given timestamp. In one embodiment, the output can be presented as a heat map, for example. In one embodiment, the output can be provided in a time-lapse manner. The example time lapse rate for displaying the output about the data collected during the monitoring time period can be, for example, at least 1 minute / second, at least 15 minutes / second, at least 60 minutes / second, at least 90 minutes / second or at least 120 minutes / second. Accordingly, the time lapse output can be provided at a speed, for example, at least 60 times, 900 times, 3600 times, 5400 times or at least 7200 times faster than the actual duration of the monitoring time period. In certain embodiments, the scope of time lapse output can be from for example 1 minute / second to 120 minutes / second, from 15 minutes / second to 60 minutes / second, from 60 minutes / second to 90 minutes / second, from 1 minute / second to 15 minutes / second, from 1 minute / second to 60 minutes / second, from 60 minutes / second to 90 minutes / second or any other scope.In certain embodiments, time lapse output can be provided dynamically.For example, in a given time period, the output can be in the scope of 1 minute / second to 120 minutes / second.In certain embodiments, time lapse output can be automatically adjusted by the system according to the activity standard.For example, in the time period when the use changes relatively slowly, time lapse can increase.On the contrary, in the time period when the use changes relatively more frequently, time lapse can reduce.In one embodiment, time lapse can be selectively adjusted by the operator.

[0028] In some embodiments, the system may be operable and configured to provide values ​​of statistical measurements related to functional facility usage. Non-limiting examples of statistical measurements may include peak values, minimum values, average values, median values, correlations, percentages, and / or standard deviations related to the collected facility usage data. For example, a peak usage value for a time period may be provided along with a corresponding timestamp. In some embodiments, the time period and type of statistical measurements associated with observations made during the time period may be selected by an operator of the system.

[0029] In some embodiments, the system is operable to monitor usage of a functional facility having a given spatial and / or functional structure. Based on data describing usage collected during monitoring, the system can provide outputs suggesting modifications to the given spatial and / or functional structure of the facility to obtain a more efficient use of the functional facility given available resources. Alternatively, given the available resources, the system can determine and output an optimal spatial and / or functional structure for the facility.

[0030] The term "use" as used herein may refer, for example, to "occupancy", "dwell time" and / or "throughput". Functional facilities may include, for example, office buildings, shopping malls, commercial centers, hospitals, commercial facilities, industrial facilities, storage facilities, school campuses, public recreation areas, public transportation stations, and / or parking facilities, such as multi-storey car parks. The terms "functional facilities" and "facility" may be used interchangeably herein.

[0031] The term "user" as used herein may refer to any person associated with a computerized client device, for example, by carrying, driving, transporting, or otherwise moving at least substantially synchronously with the device within such a functional facility.

[0032] The term "computerized client device" may refer to, for example, a multi-function mobile communication device also known as a "smartphone," a personal computer, a laptop, a tablet computer, a personal digital assistant, a wearable device, a handheld computer, a notebook computer, a vehicle-mounted device, and / or any movable object operable to wirelessly send and / or receive data and process the received data. The terms "computerized client device" and "client device" may be used interchangeably herein.

[0033] One or more client device detectors (or simply "detectors") located in a functional facility may be associated with data describing facility location information to obtain detector location information.

[0034] In some embodiments, a "detector" may be capable of converting a physical stimulus into processable electronic data. Thus, a detector may also have sensing capabilities. For example, a detector deployed in a functional facility may be capable of sensing received electromagnetic (EM) signal strength, the location of a client device emitting EM radiation, and / or other parameters related to electromagnetic radiation. In addition, as outlined in more detail below, a detector may also be implemented by a network switch or similar network device.

[0035] The term "signal strength" and grammatical variations thereof as referred to herein relate to any value providing an indication of EM field strength and may be expressed in Watts or as a power ratio of decibels referenced to 1 milliwatt (dBm) of measured power or any other suitable unit or indication.

[0036] In one embodiment, a method for monitoring use of a functional facility may include detecting, by a detector located in the functional facility, an operable engagement between the detector and a client device. Such operable engagement may include, for example, connecting a client device (e.g., a laptop) to a LAN switch; docking the client device to a LAN connection, e.g., via a docking station; and / or receiving a wireless signal transmitted by the client device, the wireless signal being received, for example, at a particular quality and for a minimum period of time, by an access point located in the functional facility. The method may then further include providing an output describing the detected operable engagement and location information associated with the detector. The output may be provided to an operator of the functional facility.

[0037] In some embodiments, the output may include identification information of the client device whose presence is detected. Such data describing the client device identification information may be referred to herein as a “client device identifier” or “client device ID.” The received client device ID may be associated with the detector location information.

[0038] In some embodiments, the output may include device location information. The device location information may be based on (eg, inferred from) detector location information that detected the presence of the device.

[0039] In some cases, to simplify the subsequent discussion, the terms "device location information" and "detector location information" may be collectively referred to as "location information" herein.

[0040] Based on the position information obtained over a period of time, parameter values ​​related to the use of the facility may be provided to an operator, for example in real time, for monitoring and analysis purposes. The term "real time" as used herein may also encompass the meaning of the term "substantially real time".

[0041] According to some embodiments, the client device ID may be associated with data describing corresponding user identification information. Such data may be referred to herein as a "user ID". The method may include, in some embodiments, a process for anonymizing the client device ID to obtain an anonymous user ID before providing an output indicating the use of the functional facility to an operator of the system. An example anonymization process that may be employed is outlined in more detail below.

[0042] According to some embodiments, the system may include one or more sensors (e.g., respectively employed by one or more detectors) for measuring a parameter that may indicate the presence of a client device in a functional facility. In response to the measured parameter, at least one of the one or more sensors may generate a signal that may be received and processed by a processor. The processed signal may indicate a distance of the client device from the selected at least one sensor. Based on the processed signal indicating the distance, the processor may generate instructions to a controller for adjusting the orientation and / or position of at least one sensor within the functional facility to improve sensor coverage. BRIEF DESCRIPTION OF THE DRAWINGS

[0043] The drawings generally illustrate, by way of example and not limitation, various embodiments discussed in this document.

[0044] For simplicity and clarity of illustration, the elements shown in the figures are not necessarily drawn to scale. For example, the dimensions of some elements may be exaggerated relative to other elements for clarity of presentation. In addition, reference numerals may be repeated in the figures to indicate corresponding or similar elements. Reference to previously presented elements is implied without further reference to the figure or description in which they appear. The number of elements shown in the figures should in no way be construed as limiting and is for illustrative purposes only. The following lists the figures

[0045] Figure 1 A schematic isometric illustration of a functional facility (left side) and a schematic block diagram illustration of a system for monitoring usage of the functional facility (right side) are shown;

[0046] Figure 2 A schematic plan view illustration showing floors of a functional facility and a schematic block diagram illustration of a system for monitoring usage of the functional facility;

[0047] Figure 3 A schematic block diagram illustration of components of a client device, a detector, and a monitoring server of a display system is shown;

[0048] Figure 4 A flow chart showing a method for geographically mapping detectors in a functional facility;

[0049] Figure 5A flow chart illustrating a general method for geographically mapping computerized client devices in a functional facility;

[0050] Figure 6 A schematic diagram showing a local area network topology is shown;

[0051] Figure 7 A flow chart showing a method for mapping detectors in a functional facility;

[0052] Figure 8 A flow chart illustrating a method for geographically mapping client devices using wired-based LAN connections;

[0053] Fig. 9 A schematic block diagram illustration of a wireless communication system deployed in a functional facility is shown;

[0054] Fig. 10A A flow chart illustrating a method of geographically mapping client devices based on wireless signals;

[0055] Fig. 10B A flow chart illustrating a method for filtering and clustering data describing geographically mapped client devices;

[0056] Fig.11 A flow chart showing a method for classifying location points of functional facilities;

[0057] Fig.12 A flow chart showing an anonymization method is shown;

[0058] Fig.13 An example heat map image depicting usage of floors in a functional facility by client devices over an extended period of time is shown;

[0059] Fig.14 An example snapshot image of a floor recorded at a first recording time is shown;

[0060] Fig.15 showing an example snapshot image of a floor recorded at a second recording time;

[0061] Fig.16 showing an example snapshot image of a floor recorded at a third recording time; and

[0062] Fig.17 is a schematic block diagram illustration of a manufactured product. DETAILED DESCRIPTION

[0063] refer to Figure 1 and 2The system for providing information related to the use of the functional facility 1000 is referenced herein as alphanumeric reference numeral “ 2000 .” The functional facility 1000 may have one or more floors, such as a first floor 1100 , a second floor 1200 , a third floor 1300 , and a fourth floor 1400 .

[0064] The system 2000 may also be referred to herein as a "monitoring system" or "facility monitoring system". The functional facility monitoring system 2000 may monitor facility usage based on detection and monitoring of the location of one or more computerized mobile client devices 2200 (e.g., first, second, and third client devices 2200A-2200C) located on the first facility floor 1100. One or more client devices 2200 may be associated with one or more corresponding users (not shown). In one embodiment, one or more client devices 2200 may be considered to be included in the monitoring system 2000. The monitoring system 2000 may include one or more external detectors 2400 (e.g., detectors 2400A-2400H). As used herein, the term "external detector" may refer to any device, apparatus, and / or system external to the computerized client device 2200. The monitoring system 2000 may further include, in some embodiments, the use of a monitoring server 2500. As used herein, the term "external detector" may refer to a sensor external to a client device. Some of the detectors 2400 may, for example, be included in or embodied as a LAN connection and / or a wireless access point. For example, an access point may be used to establish a macro, femto, or pico cell for wireless communication.

[0065] refer to Figure 1 and Figure 2 The local Cartesian coordinate system (LCS) schematically shown by arrows X(LCS), Y(LCS) and Z(LCS) in FIG. 1 can map the parameters of the functional facility 1000 to obtain map information. The initial geographic facility information can be updated periodically or non-periodically (e.g., pseudo-randomly) and / or in response to input received by the facility monitoring engine 2100 indicating a change in a geographic parameter associated with the functional facility 1000.

[0066] Non-limiting examples of geographic facility information may refer to and / or include floor-level information (e.g., information derived from a digital terrain map or DTM that is locally associated with a local coordinate system); the location of walls, windows, doors, stairs, escalators, elevators; parking areas, including, for example, the number of free parking lots and indications of their locations; the location of toilets, bathrooms, and / or commercial areas; the name of the company that occupies the commercial area and / or the type of services and / or products offered in the commercial area; the location of living areas, public and private spaces, maintenance areas, and / or restricted areas; the location of emergency equipment, emergency exits, and the like.

[0067] Non-limiting examples of geographic facility information may also refer to and / or include information about the location of product items in a retail store and pricing, product numbers, and / or other information about the items. For example, such product items may include clothing, food, stationary products, and / or toys. In some embodiments, information about the location of the point of sale (POS) of product items may be mapped in the functional facility 1000 according to product categories. For example, areas where sportswear and vegetables are offered for sale may be mapped in the functional facility 1000. Optionally, the location of each specific product item may be mapped in the functional facility 1000. For example, the location of a specific brand of sports shoes and apple species may be mapped in the functional facility 1000 by a local coordinate system, optionally together with associated product pricing.

[0068] In addition, geographic facility information may include and / or refer to, for example, location information describing the detector 2400 and associated operating parameters, including, for example, a detector identifier, a detector type, the boundaries of a "dead zone" that is permanently or intermittently not covered by the detector 2400; an operating range (e.g., a wireless coverage area); a detector position relative to a local coordinate system; sensitivity; range; precision; resolution; accuracy; linearity; response time, and the like.

[0069] The number of client devices 2200, external detectors 2400, and / or servers 2500 shown in the accompanying drawings should in no way be construed as limiting, and are for illustration purposes only. Accordingly, the number of communication links as shown herein should in no way be construed as limiting, and are for illustration purposes only. In addition, the arrows indicating the direction of information flow on these links should not be construed as limiting.

[0070] Client device 2200, external detector 2400, and usage monitoring server 2500 may communicate with each other via communication network 2900. Communication network 2900 may be included in or added to a facility communication network that interconnects communication components that serve facility 1000 and its users.

[0071] Using the data provided by the external detectors 2400, the monitoring system 2000 is operable to enable methods, processes and / or operations for mapping the locations of the detectors 2400 in the facility 1000 to obtain detector location information respectively associated with the detectors 2400. In one embodiment, the mapping of the detectors 2400 may be performed layer by layer. The terms "mapping" and "geographically associated" may be used interchangeably herein.

[0072] In addition, the monitoring system 2000 may be operable to enable methods, processes, and / or operations for detecting and tracking client devices 2200 located in the facility 1000 using the detectors 2400. For example, in response to detecting the presence of a client device 2200A in the facility 1000 by one or more detectors 2400, the monitoring system 2000 may be operable to detect and track the client device 2200A based on the detector location information associated with the detector that detected the presence of the client device 2200A.

[0073] The above-described methods, processes, and / or operations for mapping the locations of detectors 2400 and for detecting, mapping, and tracking client devices 2200 located in a facility 1000 using geographically associated detectors 2400 may be implemented herein by a “device monitoring engine” that is configured to detect, map, and track client devices 2200 located in a facility 1000 using geographically associated detectors 2400. Figure 1 Schematically illustrated in FIG. 2 as a block referenced by an alphanumeric label “2100.” In one embodiment, facility monitoring engine 2100 may output a heat map indicating usage of areas in a functional facility during a time interval.

[0074] The term "engine" as used herein may also relate to and / or include a module and / or a computerized application. The facility monitoring engine 2100 may be implemented by one or more hardware, software, and / or hybrid hardware / software modules, for example, as outlined herein. Obviously, the configuration of the facility monitoring engine 2100 as outlined herein should by no means be interpreted as limiting, and it is for illustrative purposes only. According to some embodiments, the facility monitoring engine 2100 may, for example, include a detector mapping module 2110 and a mapping module 2120.

[0075] In an embodiment, the detector mapping module 2110 may store the geographic location information of the detector 2400 together with the identifier of the detector 2400 .

[0076] In an embodiment, the mapping module 2120 may register the detection of the client device 2200 and geographic facility information related to the geographic information associated with the detector 2400 that detected the presence of the client device.

[0077] The detector mapping module 2110 may, for example, include a wire-based detector mapping module 2112 and a wireless-based detector mapping module 2114 for geographic mapping of the detectors 2400 relative to their locations in the functional facility 1000. Data describing the geographic mapping of the detectors 2400 is stored in the monitoring system 2000 as detector location information. The wire-based detector mapping module 2112 may, for example, allow mapping of client devices 2200 located in the functional facility 1000. Similarly, the wireless-based detector mapping module 2114 may, for example, allow mapping of wireless access points and / or client devices 2200 in the functional facility 1000.

[0078] According to some embodiments, once the detector 2400 is geographically mapped, the mapping module 2120 can provide device location information in response to the detector 2400 detecting the presence of the client device 2200. The mapping module 2120 can include, for example, a wired-based client device mapping module 2122 and / or a wireless-based client device mapping module 2124.

[0079] In some embodiments, the facility monitoring engine 2100 may include a registration module 2130. The registration module 2130 may, for example, register (eg, based on identifiers received from the client device 2200 at one or more detectors 2400) the entrance and exit of the client device 2200 into / out of the functional facility 1000.

[0080] In some embodiments, the registration module 2130 may store data describing identifiers of client devices 2200 that are approved for use in conjunction with the facility monitoring system 2000 (eg, by a system administrator).

[0081] In some embodiments, a network authentication module 2700 may be employed that is operable to authenticate a client device attempting to communicate with a system component of the communication network 2900. The network authentication module 2700 may, for example, include an identity service engine (ISE) for verifying the user's eligibility to access the network 2900. After authenticating the client and / or its user, the network authentication module 2700 may invoke a network authentication phase to define which network resources the authorized user may access.

[0082] In some embodiments, the facility monitoring engine 2100 may include an operator authentication module 2144 for verifying whether an operator is qualified to use the monitoring engine 2100. After authentication, an operator authorization phase may be called by the operator authentication module 2144 to define which facility monitoring engine resources the authorized operator can access.

[0083] In some embodiments, the facility monitoring engine 2100 may include an anonymization module 2150 for protecting the privacy of a user associated with the client device 2200 .

[0084] In general, the presence of a client device 2200 at a particular geographic location in the facility 1000 may be detected in response to the client device being operatively engaged with any one of the detectors 2400 located in the facility 1000. Detecting the operative engagement may, for example, include detecting a communication connection made between the client device and a wired and / or wireless local area network (LAN) geographically associated with the functional facility 1000; detecting a connection of the client device 2200 to a LAN switch located in the functional facility; detecting a connection of the client device 2200 to another client device (e.g., a client device connected to a desktop computer via a USB cable) that is operatively engaged with a detector 2400 of the functional facility 1000; detecting a client device 2200 connected to an electrical hook connector (not shown) of the facility, and the like.

[0085] Typically, detectors 2400 are deployed throughout the functional facility 1000. For example, each personal desk (not shown) and each conference room table (not shown) can be equipped with a LAN connection 2920, which can act as (or be included in) a detector 2400. In addition, multiple access points can be deployed in the functional facility 1000 to ensure that there is a certain minimum signal reception in at least those areas of the facility where it is expected that users will frequent. In some embodiments, in the functional facility 1000, interference devices can be deployed in areas where cellular communications are considered disruptive (e.g., in sanitary areas). In some embodiments, such interference devices can also act as client device detectors 2400.

[0086] like Figure 2 Schematically shown in FIG, an example layout of a first facility floor 1100 may accommodate offices that may be divided by walls 1102, such as to create various different floor areas 1105A-1105D schematically represented by dashed lines. For example, areas 1105A and 1105B may be used as work spaces (e.g., including individual work spaces or conference rooms), area 1105C may, for example, include restrooms, and area 1105D may include kitchen and dining facilities.

[0087] Now refer to Figure 3In some embodiments, the computerized client device 2200 may include one or more inertial sensors 2210i and non-inertial sensors 2210ii, a client device processor 2220, a client device memory 2230, a client device navigation engine or positioning module 2250, a client device communication module 2260, a client device user interface 2270, and a client device power module 2280 for powering various components and / or application engines and / or modules of the computerized client device 2200.

[0088] Despite Figure 3 Although not specifically shown, in the discussion summarized herein, the components of the computerized client devices 2200A-2200C may be indicated by corresponding labels "A," "B," and "C." For example, client device processor 2220A, client device processor 2220B, and client device processor 2220C indicate that these components are included in client devices 2200A, 2200B, and 2200C, respectively.

[0089] In some embodiments, the detector 2400 may include a detector processor 2420 , a detector memory 2430 , a detector monitoring engine 2440 , a detector communication module 2460 , a detector user interface 2470 , and a detector power module 2480 for powering the various components of the detector 2400 .

[0090] In some embodiments, the facility usage monitoring server 2500 may include a server database 2510, a server processor 2520, a server memory 2530, a server monitoring engine 2540, a server communication module 2560, a server user interface 2570, and a server power module 2580 for powering various components and / or application engines or modules of the navigation server 2500.

[0091] Various components of the one or more client devices 2200 , detectors 2400 , and / or monitoring server 2500 may communicate with each other via one or more communication buses (not shown) and / or signal lines (not shown).

[0092] Inertial sensors 2210i may include, for example, one or more accelerometers and / or gyroscopes. Non-inertial sensors 2210ii may include, for example, one or more barometers, proximity sensors, altimeters, magnetometers, light sensors, touch screen sensors, global positioning system receivers, and / or front and / or rear cameras.

[0093] The client device memory 2230, the detector memory 2430 and / or the server memory 2530 may include one or more types of computer-readable storage media. For example, the client device memory 2230, the detector memory 2430 and / or the server memory 2530 may include transactional memory and / or long-term storage, and may be used as file storage, document storage, program storage and / or as working memory. The latter may be, for example, in the form of static random access memory (SRAM), dynamic random access memory (DRAM), read-only memory (ROM), cache or flash memory. The long-term memory, the client device memory 2230, the detector memory (not shown) and / or the server memory 2530 may, for example, include volatile or non-volatile computer storage media, hard drives, solid-state drives, magnetic storage media, flash memory and / or other storage facilities. For example, a hardware storage facility may store a fixed set of information (e.g., software code) including, but not limited to, files, programs, applications, source code, object code, etc. As working memory, the client device memory 2230 and / or the server memory 2530 may, for example, process time-based instructions.

[0094] For example, the client device communication module 2260, the detector communication module 2460, and the server communication module 2560 may include an I / O device driver (not shown) and a network interface driver (not shown) for enabling sending and / or receiving data over the network 2900. The device driver may be connected, for example, to a keypad or a USB port. For example, the network interface driver may execute protocols for the Internet or an intranet, a wide area network (WAN), a local area network (LAN) using, for example, a wireless local area network (WLAN), a metropolitan area network (MAN), a personal area network (PAN), an extranet, 2G, 3G, 3.5G, 4G (including, for example, mobile WIMAX or long term evolution (LTE) advanced, ZigBee TM , Near Field Communication (NFC), and / or other current or future communication networks, standards and / or systems.

[0095] Server 2500 may refer to, for example, one or more servers or storage systems and / or services associated with a business or corporate entity, including, for example, a file hosting service, a cloud storage service, an online file storage provider, a peer-to-peer file storage or hosting service, and / or a web hosting space.

[0096] As used herein, the term "processor" may additionally or alternatively refer to a controller. Processors such as client device processor 2220 and / or server processor 2520 may be implemented by various types of processor devices and / or processor architectures, including, for example, embedded processors, communication processors, graphics processing unit (GPU) accelerated computing, soft core processors, and / or embedded processors.

[0097] The facility monitoring engine 2100 may be implemented in whole or in part by any suitable device. For example, the implementation and / or process and / or element and / or function of the facility monitoring engine 2100 may be implemented by the client device 2200, the detector 2400 and / or by the monitoring server 2500. The various implementations and / or processes and / or elements and / or functions of the facility monitoring engine 2100 are represented herein by labels 2240, 2440 and 2540, representing "client device monitoring engine", "detector monitoring engine" and "server monitoring engine", respectively, so that the facility monitoring system 2000 operates as disclosed herein. For example, the client device memory 2230, the detector memory 2430 and / or the server memory 2530 may contain instructions that, when executed by the corresponding client device processor 2220, the processor (not shown) of the detector 2400 and / or the server processor 2520, may cause the monitoring method, process and / or operation to be performed. For simplicity of subsequent discussion only, the methods and processes disclosed herein may be discussed herein in conjunction with the facility monitoring engine 2100. One or more hardware, software, and / or hybrid hardware / software modules may implement monitoring engine 2100 .

[0098] Now refer to Figure 4 In one embodiment, as indicated at step 4100, a method for geographically mapping detectors in a functional facility may include receiving detector parameter data from one or more detectors located in the functional facility. As indicated at step 4200, the method may further include geographically associating the received detector parameter data with the geographic location of the functional facility. An example process for geographically mapping detectors is outlined in more detail below.

[0099] Further references Figure 5 As indicated at step 5100, the method of geographically mapping a client device may include detecting, by a detector located at a functional facility and geographically mapped relative to the functional facility, an operable engagement between the detector and a computerized client device.

[0100] In one embodiment, as indicated at step 5200, the method may include determining a location of a computerized client device.

[0101] In one embodiment, the method may include providing an output describing the detected operable engagement and information related to the determined location point, as indicated in step 5300. The location point of the client device is determined based on the location information of the detector. An example process of geographically mapping a client device is outlined in more detail below.

[0102] For Figure 6 2900 and may be employed by the communication network 2900. In some embodiments, the communication network 2900 may include one or more network switches 2910, for example, for communicatively associating the detectors 2400 with the monitoring engine 2100 via communication links 2930 and corresponding ports 2911 (e.g., LAN connections 2920). As already noted herein, such LAN connections 2920 may, for example, include or embody some of the detectors 2400. It should be noted that some portions of the communication links 2930 and / or 2940 may be implemented wirelessly.

[0103] The first network switch 2910(I) can be, for example, communicatively coupled to a first set of LAN interfaces 2920(I)(A)-2920(I)(C), and the second network switch 2910(II) can be communicatively coupled to a second set of LAN interfaces 2920(II)(A)-2920(II)(B). The respective operational associations or connections between the network switches and a set of LAN interfaces are represented herein by reference numerals within parentheses.

[0104] In one embodiment, LAN interfaces of a given group (e.g., docking stations communicatively coupled to the same network switch) may be deployed on the same floor. For example, LAN connections 2920(I)(A)-2920(I)(C) of a first network switch 2910(I) may be located on a first facility floor 1100, and LAN connections 2920(II)(A)-2920(II)(B) may be deployed on a second facility floor 1200.

[0105] In one embodiment, two or more network switches may be communicatively coupled with multiple sets of LAN connections located on the same floor. For example, LAN connections 2920(I)(A) to 2920(I)(B) of a first network switch 2910(I) and LAN connections 2920(II)(A)-2920(II)(B) of a second network switch 2920(II) may be located on the same facility floor 1300.

[0106] In one embodiment, LAN connections coupled to the same network switch may be located on different facility floors. For example, LAN connection 2920(II)(A) may be located on first facility floor 1100, and LAN connection 2920(II)(B) may be located on fourth facility floor 1400.

[0107] For example, as outlined herein, location mapping of detectors 2400 included in or implemented by a client LAN interface or LAN connection 2920 may be performed by a wire-based detector mapping module 2112 .

[0108] refer to Figure 7 In some embodiments, as indicated in step 7100, the mapping of the LAN connection 2920 to the port of the network switch may include communicatively coupling the client device to the LAN connection at a first geographic location, the LAN connection being communicatively coupled to the network switch via the port. In one embodiment, the port may be associated with one of a plurality of VLAN switches associated with a given network switch. The client device may have an authorized and optionally known device identifier. For example, the client device 2200A may be communicatively coupled to the first port 2911(I)(A) of the first network switch 2910(I). The client device 2200A may be communicatively coupled to the first network switch 2910(I), for example, by connecting the client device 2200A to the LAN connection (e.g., via a docking station). The client device identifier may be, for example, a media access control (MAC) address of the device. Further data that may be received from the client device may describe a client device certificate name, a user name, an organizational unit affiliation, a team affiliation, and the like. Optionally, the user name, organizational unit affiliation, team affiliation, and MAC address may be used for inventory purposes, for example, to identify a user.

[0109] As indicated at step 7200, in one embodiment, the mapping method may further include receiving an identifier of a client device (e.g., "0xAA"). For example, the client device identifier may be received by the monitoring system 2000 (e.g., via the wire-based detector mapping module 2112). For example, the client device identifier may be extracted or provided. In one embodiment, information describing the first geographic information may be received by the system 2000 (e.g., via the wire-based detector mapping module 2112). For example, the first geographic location information may be provided by an administrator of the monitoring system 2000.

[0110] In some embodiments, the mapping method may include querying all network switches and, if applicable, VLANs associated with the network switches to determine which port of the network switch is currently communicatively coupled to the client device (e.g., device 2200A) used to perform the mapping process. For example, if a match is found between the ID of device 2200A and the port, the port is mapped to the geographic location of the LAN connection 2920 (or corresponding desk) to which the device 2200A is connected. The same process may then be repeated for the next LAN connection 2920.

[0111] In some other embodiments, a cache or caching process may be employed to map ports of a network switch to LAN connections 2920, as illustrated in more detail below.

[0112] As indicated at block 7300, in one embodiment, the method of employing a cached mapping may include determining whether a client device having known and authorized identifier information is identified as having previously been connected to a LAN network entity (which includes a port). Such a LAN network entity may include a given network switch and, optionally, a given VLAN of a plurality of VLANs associated with the given network switch.

[0113] For example, in order to map the ports of a VLAN to the location of a LAN connection, the wired-based detector mapping module 2112 may first determine whether the client device 2200A has been connected to a given network switch and a given VLAN in a previous mapping process. If the result of the latter procedure is that the client device 2200A has been connected to a given network switch and its given VLAN in a previous mapping procedure, only ports of the same given VLAN may be queried (step 7305). If, in response to the query, it is found that the ID of the client device 2200A is associated with one of the ports of a given VLAN, the port is mapped to the LAN connection 2920 to which the client device 2200A is currently connected.

[0114] On the other hand, if the ID of the client device 2200A is not found to be associated with one of the ports of a given VLAN, then all VLANs of a given network switch or, optionally, VLANs that have not yet been queried may be queried (steps 7400 and 7500). If, in response to the query, the ID of the client device 2200A is found to be associated with one of the ports of any VLAN of a given network switch, then the port is mapped to a corresponding LAN connection 2920 (steps 7600 and 7800). Step 7800 is outlined in more detail further below. If no match is found between the port and the ID of the client device 2200A, then all VLANs of all switches may be queried until a match is found (steps 7400 and 7500).

[0115] Some VLAN identifiers may be blacklisted (not read) and some VLAN identifiers may be whitelisted. Whitelisted VLAN identifiers (or VLANs for short) may be queried during the LAN connection mapping process, while blacklisted VLANs may not be queried.

[0116] In one embodiment, the step of authenticating a client device may be performed by a network authentication module 2700, which may be operable to authenticate a client device attempting to communicatively connect to a system component of the communication network 2900. During the authentication procedure, a client device identifier may be received, which may be connected to the communication network 2900 in an audit mode. If the received client identifier meets a matching criterion having data describing an approved client device identifier, the corresponding client device may be authenticated. Subsequently, the client device may then be authorized to communicatively connect to a system component of the communication network 2900 in an authenticated mode. Obviously, different levels of authorization may be associated with different client devices 2200. Additional or alternative measures may be taken to prevent unauthorized access of a client device to the communication network 2900. For example, the network authentication module 2700 may, for example, The Identity Service Engine (ISE) and / or any known or future communication protocol uses the wireless protocol IEEE802.1X on the network 2900. In one embodiment, the client device identifier can be read out by using an application programming interface (API). Example APIs include Representational State Transfer (REST) ​​and Simple Network Management Protocol (SNMP).

[0117] In some embodiments, before associating or mapping a port with a LAN connection, it may be checked whether the port is blacklisted (step 7700). In other words, as indicated by step 7700, the method may further include determining whether the port of the network switch to which the client device is connected is "blacklisted". A port may be considered "blacklisted" if it has been used or reserved for connecting a component to the network switch and is therefore not available for connection with a client device. For example, port #n of the first network switch 2910 (I) and port #1 of the second network switch 2910 (II) may be blacklisted when they are used to communicatively couple the first network switch 2910 (I) with the second network switch 2910 (II), for example, via a communication link 2931.

[0118] In the event that the port for which the device ID is found is not blacklisted, in one embodiment, as indicated by step 7800, the method may include storing information describing first geographic information in association with data describing the port in the system 2000. For example, the geographic information may be the location of a desk or room and a corresponding LAN connection that is geographically mapped in the system 2000. Optionally, a LAN connection identifier may be stored in association with the first geographic location information. Optionally, a VLAN associated with a port of a network switch is stored in association with the geographic location information.

[0119] Alternatively, a timestamp may be stored in association with first geographic information associated with an identifier of a network switch and port. The timestamp represents a time record of the geographic association of a port or detector. Prior to reconfiguring the network 2900 in a different manner (which may result in changing the first geographic mapping to a second different geographic mapping), another recorded timestamp prior to such network reconfiguration may be associated with the port. Thus, the geographic location information of the detector may be attributed to the start and end times of the time period that defines the geographic mapping of the detector to be valid.

[0120] In one embodiment, the method may include repeating steps 7100 - 7800 at a next geographic location having an arrangement of network switches for communicatively coupling the client device to the functional facility 1000 .

[0121] Further references Figure 8 , which shows a flow chart of a method for geographically mapping client devices using wired-based LAN connections. As indicated by step 8100, this method can include detecting, by a detector located on a functional facility and geographically mapped relative to the functional facility, an operable engagement between a plurality of detectors and computerized client devices. In one embodiment, the step of detecting such operable engagement can include or can be followed by reading identifiers of a plurality of detected client devices and corresponding network switches (and optionally, corresponding VLAN lists) and corresponding port identifiers. For example, referring to Figure 6 In response to detecting the communicative connection of the client device 2200D with the LAN interface 2920(I)(B), the wire-based client device mapping module 2122 may receive (e.g., by reading or extracting) identifiers of the client device 2200E, the LAN interface 2920(I)(B), the first network switch 2911(I), and port #46. As an alternative to receiving the identifier of the network switch 2911(I), the wire-based client device mapping module 2122 may receive (e.g., read) a VLAN list.

[0122] As already noted herein, the client device identifier may be, for example, a media access control (MAC) address of the device. Optionally, the client device identifier may describe a client device certificate name, a user name, an organizational unit affiliation, a team affiliation, etc. Optionally, the user name, organizational unit affiliation, team affiliation, and MAC address may be used for inventory purposes, for example, to identify a user.

[0123] The identifier received in the current readout procedure of step 8100 may be referred to herein as a "current identifier". In one embodiment, as indicated by step 8200, the method may include storing the received identifier as the current identifier in the database 2160. For example, the database 2160 may be embodied by the server database 2510 of the monitoring server 2500 (e.g., in whole or in part).

[0124] As indicated at block 8300, the method may include determining whether there is a difference between the current identifier and the reference identifier by comparing the current identifier with an identifier received in a previous read cycle (referred to herein as a "reference identifier"). As indicated at block 8400, the method may further include updating the reference identifier list to obtain an updated list of reference identifiers if there is a difference.

[0125] Comparing the current identifier with the reference identifier and updating the reference identifier list can be done, for example, as follows. For example, each reference identifier can be marked as "new", "last seen" and have a timestamp marked as "start time" or "end time" that indicates the recorded time of the start and end time of the wireless and / or wired connection. For example, in the first case, the current client identifier that is not yet listed in the reference identifier list can be added to the reference identifier list and marked as "new". For example, if the identifier of the client device 2200C has not been recorded in any previous cycle, it can be listed as "new". It should be noted that the terms "record" and "register" and their grammatical variations can be used interchangeably in this article.

[0126] In the second case, if there is a match between the reference identifier and one of the current identifiers, the reference identifier may be marked as "last seen" in the list. In other words, if the reference identifier was recorded in a previous read cycle and a matching current identifier is found in the current read cycle, the reference identifier may be marked as "last seen". For example, if the identifier of the client device 2200A has been identified as registered (listed) in the read cycle before the current read cycle, it may be marked as "last seen".

[0127] In the third case, if no matching current client identifier is found for a previously read (reference) client identifier, the reference identifier may be associated with an "end time". For example, if an identifier was registered in a previous read cycle, for which no matching identifier is found in the current read cycle, the identifier of the client device 2200C may be associated with a corresponding "end time". In other words, the "end time" that may be associated with the identifier is the recorded time of the current read that the client "disappeared".

[0128] According to some embodiments, a readout for checking occupancy may be triggered periodically, such as every 5, 6, or 10 minutes. According to some embodiments, a readout for checking occupancy may be triggered in response to a notification received from a component of the system 2000, such as in response to an input received from a network switch. According to some embodiments, such a trigger may override the periodic readout cycle.

[0129] Each addition and / or change of a record in an entry of the identifier list may be associated with a timestamp.

[0130] An example pseudo-code implementation of method steps 8100-8400 is outlined below:

[0131] Input A: CAM entry list from the switch (CAM entry: MAC address + port)

[0132] Input B: List of measurements from this switch's database (MAC address + port)

[0133] Input: Currently selected network

[0134] Functions compare and update measurements:

[0135] For each switch port

[0136] Get all entries for this port from list A

[0137] Get all entries for this port from list B

[0138] Merge the two lists and extract all MAC addresses

[0139] For each MAC address

[0140] If you see the MAC address in the switch list (A) and database list (B)

[0141] Then: Update the "last seen" time in the measurement of list B (optional step)

[0142] Continue to the next MAC address

[0143] If you only see the MAC address in the switch list (A):

[0144] Then: create a new measurement (switch port, MAC address, start time = current time)

[0145] Continue to the next MAC address

[0146] If you see only the MAC address in the database list (B):

[0147] Then: Update the "end time" in the measurement of list B (set to the current time)

[0148] Continue to the next MAC address

[0149] Save all new and updated measurements in the database

[0150] End function

[0151] Reference now Fig. 9 , which schematically shows a block diagram illustration of a wireless communication system deployed in a functional facility. As already mentioned herein, the detector may be embodied or included in a wireless access point. The wireless access point may be used in wireless-based client device mapping in a functional facility. Merely to simplify the subsequent discussion, a detector with wireless communication capabilities may be referred to herein as a "wireless access point". Therefore, the detectors 2400E-2400H may also be referred to herein as wireless access points 2400E-2400H.

[0152] The client device can communicate with the access point via a wireless communication link 2950, ​​which is schematically shown by a dashed line. The access point can communicate with the facility monitoring engine 2100 via a communication link 2960, which can be implemented via wired and / or wireless communications.

[0153] The wireless access points 2400 may each include one or more antennas 2462 to allow wireless communication with the client devices 2200 via the antennas 2262 , which may be part of the client device communication module 2260 .

[0154] The term "antenna" as used herein may include any suitable configuration, arrangement and / or configuration of one or more antenna elements, components, units, assemblies and / or arrays.

[0155] In one embodiment, the wireless access points 2400E-2400H may be geographically mapped with respect to the functional facility 1000 and stored in the system 2000 as location information.

[0156] In one embodiment, the wireless-based client device mapping module 2124 can employ various techniques to estimate the location of one or more client devices based on various measurements of electromagnetic (EM) radiation parameters received from the client devices at the access point. For example, these location estimation techniques can be employed by the monitoring engine 2100 periodically or in an aperiodic manner (e.g., pseudo-randomly).

[0157] For example, such EM radiation parameters may include received signal strength (RSS), signal flight time, phase difference, etc. The measured values ​​of the parameters may be used in trilateration and / or triangulation techniques to estimate the location of the client device. The location estimation may be performed by employing optimization techniques, such as nonlinear model fitting.

[0158] For example, the location of the client device 2200C may be estimated based on received signal strength indication (RSSI) values ​​measured at two or more access points 2400E-2400H and provided or reported to the facility monitoring engine 2100 as RSSI. Figure 1 ) can estimate the location of the client device 2200C based on parameter values ​​of EM radiation emitted by the client device 2200C and based on parameter values ​​of EM radiation emitted from the same client device 2200C received by one or more access points 2400E-2400H. In some embodiments, the EM parameter values ​​can be provided to the monitoring engine 2100 in association with corresponding client device and access point identifiers. For example, the wireless-based client device mapping module 2124 can receive values ​​(e.g., RSSI values) related to one or more parameters of EM radiation emitted by the client device 2200C and received by one or more wireless access points (W-APs) 2400E-2400H in association with the identifier of the client device 2200C and one or more access points 2400E-2400H, respectively. The estimated client device location point can be stored in the system 2000 (e.g., in the database 2160) as client device location information. Additionally, a timestamp (eg, T1(Client Device 2200D), T2(Client Device 2200D), ..., Tn(Client Device 2200D)) may be associated with the estimated client device location point to indicate the time at which the location point was recorded and stored in the system 2000.

[0159] In some embodiments, EM radiation may be passively received at an access point (eg, 2400E-2400H). More specifically, some access points may receive signals related to such a link even though they are not involved in establishing and maintaining a communication link.

[0160] According to some embodiments, access points (e.g., access points 2400E-2400H) may be operably associated with (e.g., communicatively coupled to) one or more wireless management systems 2600. Non-limiting examples of such wireless management systems include Wireless LAN controller, Major infrastructure and Mobile service engine (not shown). Accordingly, in some embodiments, monitoring engine 2100 may receive (eg, read) processed EM radiation parameter values ​​related to EM radiation emitted by client device 2200 from such a wireless management system (not shown).

[0161] According to some embodiments, the monitoring engine 2100 may apply wireless client device filtering logic to information wirelessly received from a plurality of client devices at an access point. The wireless client device filtering logic may be employed to determine which of the plurality of client devices should have its location estimated by the facility monitoring engine 2100 based on values ​​associated with EM radiation received from the corresponding device at the access point. Thus, by applying the client device filtering logic, a client device is selected from the plurality of client devices. Applying the wireless client device filtering logic may, for example, return no client device or return one or more of the plurality of client devices. In other words, the wireless client device filtering logic employed by the monitoring engine 2100 may determine whether the received information of each of the wireless client devices meets a "location estimation criteria". The location estimation criteria may, for example, relate to one or more of the following parameters: a service set identifier (SSID); a building location (e.g., where the same SSID is associated with office buildings located at different locations of a given company); a minimum time period for which EM radiation is received; and / or authentication information received from the client device at the access point. For example, EM radiation carrying information transmitted by client device 2200C may be received at access points 2400E, 2400F, 2400G, and 2400H; EM radiation carrying information transmitted by client device 2200D may be received at wireless access points 2400F and 2400H. Information transmitted from client device 2200C via EM radiation may include authentication information that matches the location estimation criteria employed by the wireless client device filtering logic. On the other hand, information transmitted from client device 2200D via EM radiation may not meet the location estimation criteria. Therefore, monitoring engine 2100 may estimate the location of client device 2200C but not the location of client device 2200D.

[0162] In some embodiments, the wireless-based client device mapping module 2124 may include a client device location module that is provided by a vendor of wireless networking devices and estimates the location of client devices in the functional facility 1000. For example, the wireless-based client device mapping module may include A service mobility service module that provides data describing the location of a client device, for example based on RSSI, to the facility monitoring system 2000. Obviously, the location of a client device does not necessarily have to be estimated by such a vendor-provided device location module.

[0163] The wireless client device filtering logic may not be applicable to configurations of the system 2000 in which the client device location module is provided by the vendor of the wireless networking device.

[0164] According to some embodiments, the monitoring engine 2100 may be configured to describe the inertial sensor 2210i and / or the non-inertial sensor 2210ii ( Figure 3 ) is used to fuse data describing the location of the client device based on estimates of parameter values ​​related to the received EM radiation emitted by the client device.

[0165] refer to Fig. 10A , which schematically illustrates a flow chart of a method for geographically mapping client devices based on wireless signals according to some embodiments. As indicated by step 10100, the method may include receiving data describing parameter values ​​related to EM radiation emitted by a client device.

[0166] As indicated at block 10150, the method may, in some embodiments, optionally include using a vendor-independent location estimation method to obtain location information for the client device based on the received data.

[0167] In one embodiment, the method may further include receiving location information of the client device based on the received data, as indicated by block 10200. As apparent from method steps 10100-10200, the location information of the client device may be obtained from the wireless management module and / or by employing a vendor-independent location estimation method.

[0168] An example pseudo-code implementation of method steps 10100 and 10200 is outlined below, where location information is received from a wireless management module provided by a vendor:

[0169] ||The list of whitelisted access point (AP) MAC addresses and SSIDs is pre-stored in the database of the system 2000||:

[0170] AccessPointWhitelist=[AP1,AP2,AP5,AP10]

[0171] SSIDWhitelist=[ssid1,ssid2]

[0172] Function getWhitelistedClient(input: wireless management module) || Read the client list from the wireless management module (such as Cisco MSE)

[0173] Get client from module (only AP Mac address, SSID, client Mac address) -> client

[0174] For each client in clients:

[0175] If the SSID is in the SSIDWhitelist and AP Mac address in the AccessPointWhitelist:

[0176] Then: add the client to clientWhitelist||if the corresponding SSID and AP identifier are whitelisted, store the client device identifier

[0177] For each client in clientWhitelist: || Retrieve additional client device identification information and location information

[0178] New measurement objects

[0179] Get the client (by client MAC address) (columns VLAN, IP, username, etc.) and store the fields into a measurement object

[0180] Get location indicators (via client MAC address) and store the location indicator list in the measurement object

[0181] Store the measurements of the position indicators in the database

[0182] For each new measurement in the database

[0183] Use filtering and clustering based on position indicators to estimate position (using external software and / or using a nonlinear model fitting solver) -> X / Y coordinates

[0184] Store X / Y coordinates in measurement objects

[0185] An example pseudo-code implementation of method steps 10100, 10150 and 10200 is outlined below, wherein the position information is obtained by employing a vendor-independent position estimation method:

[0186] ||The list of whitelisted access point (AP) MAC addresses and SSIDs is pre-stored in the database of the system 2000||:

[0187] AccessPointWhitelist=[AP1,AP2,AP5,AP10]

[0188] SSIDWhitelist=[ssid1,ssid2]

[0189] Function getWhitelistedClients(input: wireless LAN controller) || Read the client list from the wireless LAN controller (WLC)

[0190] SNMP gets the client from WLC (only AP Mac address, SSID, client Mac address) -> client

[0191] For each client in clients:

[0192] If the SSID is in the SSIDWhitelist and AP Mac address in the AccessPointWhitelist:

[0193] Then: add the client to clientWhitelist||if the corresponding SSID and AP identifier are whitelisted, store the client device identifier

[0194] For each client in clientWhitelist: || Retrieve additional client device identification information and RSSI

[0195] New measurement objects

[0196] SNMP gets the client (by client MAC address) (list VLAN, IP, username, etc.) and stores the fields into the measurement object

[0197] SNMP obtains RSSI (by client MAC address) and stores the RSSI list in the measurement object

[0198] Store RSSI measurements in a database

[0199] For each new measurement in the database

[0200] Use trilateration from RSSI to estimate position (using external software and / or using a non-linear model fitting solver) -> X / Y coordinates

[0201] Store X / Y coordinates in measurement objects

[0202] According to some embodiments, the monitoring engine 2100 may apply location filtering logic to the estimated client device location information of multiple client devices to obtain location information for selecting individual client devices. For example, such filtering logic may be intended to "smooth" data points that describe time versus location, for example, to remove outliers. In some embodiments, filtering may be employed for relatively short time periods or residence times of client devices at estimated location points. By smoothing these data points, relatively short residence time periods of client devices at estimated locations may be ignored in facility usage analysis. Thus, location points where client devices are estimated to be within relatively short residence time periods are ignored. Location filtering logic may, for example, include a sliding moving average or sliding moving median, low-pass filtering techniques, and the like.

[0203] According to some embodiments, the values ​​of the measured time and location parameters are scaled. The expression "scaling" and its grammatical variants used herein may also include "normalization". For example, the values ​​of the x / y coordinates may be scaled to a range of 0 to 1 (or 0-100%) of the floor size, i.e. [0,1]. In addition, for example, the time measurement may be scaled to a numerical range ranging from 0 to 1, i.e. [0,1], and expressed in milliseconds.

[0204] According to some embodiments, cluster analysis may be performed on data describing estimated location points of wireless communication client devices and recorded associated timestamps of estimated location points. Cluster analysis may be performed by the monitoring engine 2100, for example, via the wireless-based client device mapping module 2124 of the mapping module 2120.

[0205] Each of the plurality of wireless client devices may be grouped by clustering to obtain a data cluster. For example, the respective location points and timestamps of each of the plurality of wireless client devices 2200 may be grouped as a function of time based on the geographic distribution of the location points. For example, for a given timestamp, if a group of location points are distributed in a certain geographic area at a relatively higher density than other location points, they may be associated with a cluster. Cluster analysis techniques that may be employed may include, for example, density-based spatial clustering of applications with noise (DBSCAN), K-means, and the like.

[0206] In some embodiments, once the data points in the cluster are organized, the monitoring engine 2100 can determine the center point of each cluster. In addition, for each location point in the cluster associated with a given client device, the timestamp of the occurrence of the registered location point is recorded ("start time"). If applicable, for each client device, after recording the timestamp of the occurrence of the same client device ("start time"), the timestamp ("end time") of the disappearance of the registration timestamp by the monitoring engine 2100 is recorded. In addition, for each estimated location point associated with the same client device in the cluster, the distance between the client device and the center point of the cluster can be determined. Depending on the distance of the estimated location point of the client device from the center point of the cluster, the location point can remain a member of the cluster or be removed from the cluster, for example, by associating the location point to another cluster. The number of location points in the cluster can therefore be dynamically updated by the monitoring engine 2100. The cluster analysis can be repeated at (e.g., regular) intervals. Use of the functional facility 1000 may thus be facilitated by a monitoring engine 2100 operable to dynamically determine clusters of estimated location points of wireless client devices (eg, client devices 2200A-2200C).

[0207] The estimated location point of the client device 2200 may be associated with a floor number. Thus, in some embodiments, cluster analysis may be performed on a floor-by-floor basis.

[0208] refer to Fig. 10B In some embodiments, as indicated at step 10300, the method for filtering and clustering data describing geographically mapped client devices may include smoothing the data relative to the dwell time of the client devices at the location points.

[0209] As indicated at step 10400, in some embodiments, the method may further include scaling the data describing the estimated location point of the client device to obtain scaled data.

[0210] As indicated at step 10500, the method may further include performing a cluster analysis on the scaled data to obtain clusters of estimated location points, for example based on the geographic distribution of the location points as a function of time. Based on the data clusters, usage of functional facilities may be determined or monitored.

[0211] An example pseudo-code implementation of method steps 10300-10500 is outlined below:

[0212] Function filtering and cluster measurement

[0213] Get all unique client Mac address x floor combinations for a day

[0214] For each Mac address x floors:

[0215] Get all measurements of Mac address, floor, day

[0216] Filtering measurements

[0217] Scaling measurements

[0218] Cluster measurements in three dimensions (X, Y, and time)

[0219] For each cluster:

[0220] Determine the center point of the cluster

[0221] Get the minimum time from all points in the cluster

[0222] Get the maximum time from all points in the cluster

[0223] Create a new measurement object with the following content:

[0224] Client Mac address,

[0225] floor,

[0226] x / y position (from the center point)

[0227] Start time = minimum time from the cluster point

[0228] End time = maximum time from the cluster point

[0229] Store all measured values

[0230] Function filterMeasurements:

[0231] Apply a sliding median algorithm with a fixed window length

[0232] Function scaleMeasurements:

[0233] Scale each dimension (X, Y, and time) individually:

[0234] scaleXDimension and scaleYDimension:

[0235] Linearize all measurements X (and, accordingly, Y) to the interval 0 to 1

[0236] scaleTimeDimension:

[0237] Convert time to milliseconds

[0238] Linearize all times to the interval 0 to 1

[0239] Function clusterMeasurements (trivial) uses DBSCAN or Kmeans (++) clustering algorithms in the X, Y, and time dimensions

[0240] According to some embodiments, according to one or more classification criteria of a classifier engine (not shown) employed by the monitoring engine 2100, the location point information of the functional facility can be classified into a selected one of two or more location classifications, such as "idle", "occupied", and optionally "standby", according to a residence time criterion. As outlined in more detail below, such classification criteria may involve thresholds for vacant time periods, residence time periods of client devices at the location point, and identifiers of client devices. Optionally, the classifier engine may employ machine learning, for example, to dynamically adjust thresholds related to vacant time periods and / or residence time periods. In one embodiment, different thresholds may be associated with different types of functional facilities (e.g., automatically). For example, the threshold for a business floor may be different from the threshold for a multi-story parking lot.

[0241] Generally, a location point may be classified as "occupied" if a client device is associated with the network 2900 at the location point during a predetermined time period. Additionally, a location point may be classified as "free" if no client device is associated with the network 2900 at the location point. Finally, a location point may be classified as "warm" if a client device leaves the location point and the same client device returns to the previous location point within a specific time interval and no other client devices are connected to the location point during this time. The terms "time interval" and "time period" may be used interchangeably.

[0242] In some examples, a location point may be classified as "idle" during a period of time when a client device does not classify the location point as "inactive" or "occupied" as long as such period of time exceeds a first vacancy period threshold. In some embodiments, a location point may remain classified as "idle" when the period of time exceeds the first vacancy period threshold, and any dwell time measured from a timestamp when a device is not registered at the location does not exceed the first dwell time threshold.

[0243] In some examples, a location point may be classified as "occupied" if one or more client devices continuously occupy the location point for a period of time that exceeds a second dwell time threshold. Accordingly, the first dwell time threshold may be less than or equal to the second dwell time threshold.

[0244] In some examples, even if the client device has left and returned to the same location within a time period that does not exceed the second minimum vacancy threshold, the location point may still be classified as "occupied." Accordingly, the first vacancy threshold may be greater than or equal to the second minimum vacancy threshold.

[0245] Considering "occupancy", for example, in some embodiments, the monitoring engine 2100 may only consider or register that a client device uses a certain location of the functional facility 1000 when the location information associated with the device meets the corresponding classification (e.g., residence time) criteria. For example, when the monitoring engine 2100 determines that the client device continuously occupies or is continuously located at approximately the same location for a period of time exceeding a second residence time period threshold, the client device may be considered to "use" a certain location in the functional facility 1000. For example, the second residence time period threshold can be set to at least 3 minutes, at least 4 minutes, at least 5 minutes, at least 6 minutes, at least 7 minutes, at least 8 minutes, at least 9 minutes, at least 10 minutes, at least 20 minutes, at least 30 minutes, at least 60 minutes, or at least 120 minutes. In the following two cases, a threshold time period with a residence time of 30 minutes is illustrated. In the first case, for example, a client device 2200C connected to the same port (e.g., from 9 am to 11 am via the docking station 2920 (II) (1)) is considered to be a single use or visit. In the second case, for example, client device 2200C that is connected to LAN connection 2920(I)(1) for 30 minutes from 9:00 AM to 9:30 AM (e.g., located on a personal desk), and connected to LAN connection 2920(II)(1) from 9:30 AM to 10 AM (e.g., located in a conference room), and then connected to LAN connection 2920(I)(1) again from 10 AM to 11 AM (located on the same person's desk) is considered or registered as three different uses or visits.

[0246] It should be noted that the term "continuous" may also encompass the meaning of the term "substantially continuous" in some embodiments. Thus, in some embodiments, a relatively short period of time (also referred to as: first dwell time period threshold) such as a disconnection between a client device and a port may not be deducted from the dwell time of the client device. The continuous disconnection period that may be ignored when measuring the dwell time may be, for example, 60 seconds or less, 50 seconds or less, 40 seconds or less, 30 seconds or less, 20 seconds or less, 10 seconds or less, 5 seconds or less, 2 seconds or less, or 1 second or less. In some embodiments, the period of time that may be ignored may be defined by a portion of the second dwell time period threshold, for example, 1 / 10 or less, 1 / 15 or less, or 1 / 20 or less, or 1 / 50 or less of the second dwell time period threshold.

[0247] In one embodiment, if a client device registered as occupying a location point leaves or deregisters from the location point, the location point may be classified as "inactive"; and the time period elapsed since the client device left the location point does not exceed a time period greater than a first vacant time period threshold. In some embodiments, the location point may still be classified as "inactive" even if another or the same client device is again registered as being present at the location point for a time period not exceeding a minimum stay time period. Although the following example scenarios are outlined with respect to client devices 2200B and 2200C, this should in no way be construed as limiting. Therefore, the described example scenarios are also equally applicable to other wireless and non-wireless client devices.

[0248] Consider a first example case where:

[0249] 8:00 AM to 10:00 AM - Employee 1 is associated with a client device (e.g., device 2200B) and is sitting at table A (not shown);

[0250] 10:00am to 10:30am - Employee 1 brings his / her client device 2200B to a conference room far away from Table A (e.g., at least 50 meters);

[0251] 10:30 AM to 12:00 PM - Employee 1 brings his / her client device 2200B back to Desk A.

[0252] If the first vacancy time period threshold is, for example, 4 hours (which defines the threshold for "inactive"), then the estimated location point associated with the client device 2200B from 10:00 AM to 10:30 AM would be classified as "inactive".

[0253] Consider a second example case where:

[0254] 8:00 AM to 10:00 AM - Employee 1 using client device 2200B sits at table A (not shown);

[0255] 10:00am to 5:30pm - Employee 1 brings his / her client device 2200B to a conference room far away from Table A (e.g., at least 50 meters);

[0256] 5:30pm to 6pm - Employee 1 brings his / her client device 2200B back to Desk A.

[0257] The time interval from 10 a.m. to 5:30 p.m. is 7.5 hours, which is longer than the first vacancy time period threshold of 4 hours. Therefore, the estimated location point associated with table A can be classified as "free" from 10 a.m. to 5:30 p.m., or classified as "inactive" from 10 a.m. to 2 p.m. and classified as "free" from 2 p.m. to 5:30 p.m.

[0258] Consider a third example case where:

[0259] 8:00 AM to 10:00 AM - Employee 1 using client device 2200B sits at table A (not shown);

[0260] 10:00am to 10:30am - Employee 1 brings his / her client device 2200B to a conference room far away from Table A (e.g., at least 50 meters);

[0261] Meanwhile, for example, from 10:10 a.m. to 10:20 a.m., employee 2 places his / her client device 2200C on table A;

[0262] 10:30am to 12:00pm - Employee 1 is again at Table A.

[0263] Now consider, for example, that the first vacancy period threshold is set to: 4 hours; and

[0264] The second stay time period threshold is set to 5 minutes, and the location point associated with table A is neither classified as "inactive" nor "idle", but is classified as "occupied" because the client device 2200C of employee 2 has been at table A for a period of time that exceeds the stay time period threshold set to 5 minutes, so it was initially defined as "inactive" during the period of time. More specifically, as long as no client device occupies the location point during the first vacant time period threshold of the second stay time period threshold, the location point can remain classified as "inactive". Otherwise, the location point is classified as "occupied".

[0265] refer to Fig.11 In some embodiments, as indicated at step 11100, a location point classification method may include receiving data describing a location point in a functional facility.

[0266] In one embodiment, the method may further include classifying the data describing the location point according to a classification criterion, such as by a classifier, as indicated in step 11200. As outlined in more detail below, such classification criteria may involve a threshold value for a vacancy period, a residence period of the client device at the location point, and an identifier of the client device.

[0267] The following is an overview of an example pseudo-code implementation of steps 11100-11200 of the location point classification method:

[0268] Set the inactivity period: In the following example: 4 hours

[0269] The following function returns occupied + inactive measurements. The input is a list of "occupied" measurements, the output is a list of measurements of tables that are either "inactive" or "occupied".

[0270] function getMeasurementsWarmAndOccupied(input: list of measurements)

[0271] Create an empty "occupied+standby" measurement list

[0272] Indexing the measurement list by position

[0273] Treat each position individually:

[0274] Treat each measurement at this location individually:

[0275] "This measurement" is the measurement we are currently iterating on "Previous measurement" is the last measurement we added to the "Occupancy + Standby Measurement List"

[0276] Is this the first measurement?

[0277] => Add this measurement to the "occupied + standby" list

[0278] Continue to the next measurement

[0279] The user who conducted the previous measurement == the user who conducted this measurement?

[0280] After the "start time of this measurement (start time)", is it the "end time of the previous measurement (pause)" + "standby period"?

[0281] => Update the previous measurement and set the "end time" to the "end time" of this measurement

[0282] Continue to the next measurement

[0283] otherwise

[0284] => Add this measurement to the "occupied + standby" list

[0285] Continue to the next measurement

[0286] otherwise

[0287] => Add this measurement to the "occupied + standby" list

[0288] Continue to the next measurement

[0289] Processing the next position

[0290] Returns a list of "occupied + inactive measurements", i.e., lists from which start time to which end time each table is occupied or inactive

[0291] In another embodiment, only "inactive" tables are returned, which can be achieved, for example, by determining the difference between "occupied and inactive" and "occupied only".

[0292] In some examples, data on a wired local area network (LAN) may take precedence over wireless LAN data. Consider, for example, Figure 2 , where a client device 2200A (e.g., a laptop) located in area 1105B and associated with a given user is connected, for example, via a docking station (see Figure 6 ) is operably coupled to the LAN connection 2920(II)(B) / 2400(II)(B). At the same time, another client device 2200B associated with a given user is wirelessly coupled to an access point (e.g., detector 2400F). If the location of the wirelessly coupled client device 2200A is estimated to be within a certain range of the LAN connection 2920(II)(B) within a specific time period, the location of the LAN connection 2920(II)(B) can be associated with the client device 2200A. For example, data describing the estimated location of the client device 2200A can be deleted, discarded, ignored, or overwritten. If the location point of the LAN connection 2920(II)(B) is classified as "occupied" before the location of the LAN connection 2920(II)(B) is associated with the client device 2200A, the same classification category can be retained after the location point of the LAN connection is associated with the client device 2200A.

[0293] Conversely, if the estimated location of the wirelessly coupled client device 2200A is outside a particular range of the location of the LAN connection 2920(II)(B) for a certain period of time, the estimated location point may remain associated with the wireless client device 2200A and the location point of the LAN connection 2920(II)(B) may remain associated with the latter.

[0294] In the case where the location of the LAN connection 2920(II)(B) is associated with the first wirelessly coupled client device 2200A, because the latter was estimated to be within a certain range of the LAN connection 2920(II)(B) for a certain period of time, and the location of the wirelessly coupled client device 2200A is thereafter outside the certain range of the location of the LAN connection 2920(II)(B) for a certain period of time, the association of the location of the LAN connection with the client device 2200A may be broken, and the location of the wirelessly coupled client device 2200A may be determined independently of the location of the LAN connection 2920(II)(B). For example, the location of the wirelessly coupled client device 2200A may again be based on, for example, EM radiation parameters associated with the client device 2200A as outlined herein.

[0295] It should be noted that the client device identifier (e.g., media access control or MAC address) of the first client device 2200A may be different from the client device identifier of the second client device 2200B. However, as already noted herein, the system 2000 may still be operable to associate different identifiers of at least two client devices (e.g., the first client device 2200A and the second client device 2200B) to the same user, for example, because at least one of the at least two client devices (e.g., the second client device 2200B) may require authentication of at least one client device based on user authentication and for verifying the eligibility of the at least one client device (e.g., the second client device 2200B) to access the network 2900 (e.g., via a LAN connection). Based on input provided by the user to the network 2900 when authenticating the second client device 2200B, the system 2000 may be operable to determine whether the same user is associated with the (LAN-connected) client device (e.g., client device 2200B) and another wireless client device (e.g., client device 2200A).

[0296] Optionally, the classification of the location point associated with LAN connection 2920(II)(B) may be changed from the "occupied" category to another category, such as "standby" or "free."

[0297] In some embodiments, the classification of location points may be connection dependent. For example, depending on the system configuration, for example, because the dwell time thresholds vary between different systems or different LAN connections of a system, in the case of a wired connection with a detector having a certain dwell time with the LAN connection, the location associated with the LAN connection may be classified as "occupied" or "inactive". In any case, if the location of a first client device is estimated to be within a certain range of a second client device that is simultaneously coupled to the LAN connection, and both the first and second client devices are identified as being associated with (e.g., belonging to) the same user, then the location associated with the LAN connection may be classified as "occupied".

[0298] In some embodiments, a client device associated with a user may be mapped to the nearest free location within a specific range of the wireless-based location estimate of the same client device. The location information of the nearest free location may then be used to determine the occupancy level (also referred to as: usage level) of the functional facility 1000 and / or various locations of the functional facility 1000 at a selected timestamp and / or during a selected time period.

[0299] The term "closest" is relative to a wireless-based location estimate. If there are no client devices of different users mapped to a certain location, the location can be considered "idle" at a certain point in time. For example, if another client device at a certain location is not connected to the LAN and / or if the WLAN communication link capacity of the location is not exceeded, for example, as inferred or determined in system 2000 based on the available physical infrastructure, the location can be considered idle. Although certain location information can be mapped to client devices and considered (e.g., for statistical analysis) to determine the use of functional facilities, other location information that may also be associated with the client device at the same time may not be considered to determine the use of functional facilities. For example, in the previous example above, the wireless-based location estimate associated with the client device may not be considered in the statistics for determining the occupancy level, but the estimate can still be associated with the client device and continuously updated.

[0300] For example, if the first LAN connection 2400B and the second LAN connection 2400C (reference Figure 2 ) is within a particular range of an estimated temporal location tuple of a first wireless client device 2200A associated with or for the first user, but the location of the first LAN connection 2400B is classified as occupied by another user's client device, as opposed to the location associated with the second LAN connection 2400C which is classified as "idle," then the location information of the wireless client device 2200A is mapped to the location of the second LAN connection 2400C. The client device 2200A may be mapped to the location of the LAN connection 2400C even if the location of the client device 2200A is estimated to be closer to the location of the LAN connection 2400B than to the location of the LAN connection 2400C.

[0301] In the event that all LAN connections within a specific range of a given client device's wireless-based location estimate are classified as "inactive" or occupied by client devices of other users, the given client device may be mapped to the nearest "inactive" LAN connection location. In one example, if all other LAN connection locations within a specific range of the client device except for one idle LAN connection location are classified as "inactive" or "occupied," the client device may be mapped to the idle LAN connection, even if its location is farthest from the wireless-based location point. In another example, the client device may be mapped to the nearest "inactive" LAN connection location.

[0302] It should be noted that in the following discussion, the expression "anonymizing an identifier" may refer to anonymizing one or more identifiers of a client device, a user, or both.

[0303] According to some embodiments, data describing an identifier of a client device may be anonymized to produce anonymized data for protecting the privacy of a user associated with a client device whose location is tracked by the monitoring engine 2100. Anonymization may be performed while simultaneously enabling the utility of the generated anonymized data with respect to monitoring of facility usage. One or more data anonymization techniques may be performed by an anonymization module 2150 of the monitoring engine 2100 to produce anonymized data. Examples of anonymization techniques that may be employed include hash encoding, optionally in combination with a randomly (or pseudo-randomly) generated string, also referred to as a "salt." In one embodiment, for a given data set to be anonymized, the random string may remain unchanged or constant. In another embodiment, the random string may be dynamically changed, for example periodically.

[0304] In one embodiment, the anonymization technique may include a process of receiving data describing an anonymization level to be applied by the anonymization module 2150. The number of anonymization levels that may be applied by the anonymization module 2150 may vary for different embodiments and should not be limited to the examples outlined herein.

[0305] For example, three different levels of anonymization may be applied: a first non-anonymization level; a second medium anonymization level (also referred to as a “team level”); or a third high anonymization level (also referred to as a “company level”). The non-anonymization level may allow unlimited tracking of the client device 2200, i.e., without imposing restrictions on the privacy of the user of the client device. The medium anonymization level may provide some privacy protection for the user of the client device 2200. For example, the client devices may be anonymized at a “team level”. For example, the identifiers of the client devices of a first group of users may be associated with a first team (e.g., an “IT team”) of “Company A”, and the identifiers of the client devices of a second group of users may be associated with a second team (e.g., an “HR team”) of the same company “Company A”. Optionally, the identifiers associated with the first team may all be different from the identifiers associated with the second team. Optionally, one or more identifiers may be associated with two or more different teams of the same company.

[0306] The high anonymity level may provide a higher level of anonymization, i.e., privacy protection, than the medium anonymity level. For example, users may be anonymized at a company level. For example, identifiers of client devices of a first group of users may be associated with a first company name (e.g., "Company A"), and identifiers of client devices of a second group of users may be associated with a second company name (e.g., "Company B"). Alternatively, one or more identifiers may be associated with two or more of the same companies.

[0307] In some embodiments, medium and high anonymizations may each have two or more anonymization sub-levels. For example, multiple anonymization sub-levels may be defined by various levels of client device traceability. Thus, in some embodiments, the anonymization technique applied may include a process of receiving data describing a device traceability level that may be applied by the anonymization module 2150.

[0308] For example, in a first traceability level (which may also be referred to herein as a "single access level"), whenever one or more detectors 2400 detect the presence of a client device, the (one or more) identifiers of the client device and / or the user associated with the (one or more) identifiers of the client device are anonymous. For example, it may be known that a user is a member of a particular team, but whether the same user of the team revisits the same location may still be unknown / anonymous. For example, whenever, for example, a client device 2200A is connected to a port of a network switch, for example via a docking station 2920, and / or whenever a wireless access point receives a signal from a client device 2200A carrying data describing the (one or more) identifiers, the anonymization module 2150 may anonymize the corresponding (one or more) identifiers. Therefore, two "visits" or device detections cannot be linked to the same client device and / or its user. In this first traceability level, the timestamp indicating the recording time of the location of the client device cannot be truncated, that is, it is recorded "as is".

[0309] In the second traceability level, which may also be referred to as the "in-time level" in this article, for example, the corresponding identifier of the client device (and / or its user) may be associated with the same anonymous identifier over a period of time. Therefore, the association of the identifier with the team may be known, and it may also be known whether the same user of the team has revisited the same location over a period of time. However, the identification of the user may still be anonymous. Therefore, within the time period, the detection of the client device by one or more detectors within the time period can be linked. For example, the identifier of the client device 2200C detected for the first time by a detector (e.g., detector 2400B) within a time period can be anonymized to generate anonymized data describing the anonymous identifier peculiar to the client device 2200C. As long as the time period has not passed, the same anonymous identifier can remain associated with the client device 2200C. Once the time period has passed, other anonymized data can be associated with the client device 2200C. Similarly, as long as the time period has not passed, other anonymized data can remain associated with the same client device. In some embodiments, the time period can be dynamically changed. For example, such a time period can have a duration of 4 hours, 8 hours, 12 hours, 24 hours, or 36 hours. The timestamp from which this time period is measured may vary, for example, starting at 0am, 6am, 12pm. In this second traceability level, when these time periods are calendar dates, for example, the hours, minutes and seconds of the timestamps are truncated.

[0310] In the third traceability level, for example, the same anonymized data may remain associated with the corresponding client device regardless of any time period. For example, once the presence of the client device 2200B in the functional facility 1000 is detected, the same anonymized data may remain associated with the client device 2200B. In the third case, the timestamp will be truncated intact. The third traceability level may allow tracking of client devices on a team-by-team basis, but it is not possible to determine whether users of the same team revisit the same location multiple times within a (predetermined) time period.

[0311] refer to Fig.12 In some embodiments, as indicated at step 12100, the anonymization technique may include receiving data describing an anonymization level to be applied to data describing an identifier of a client device.

[0312] In one embodiment, as indicated at step 12200, the method may further include receiving data describing a level of traceability to be implemented in a client device associated with the anonymized identifier data.

[0313] An example pseudo-code implementation of steps 11100-11200 of the anonymization method is outlined below:

[0314]

[0315]

[0316] Fig.13 An example heat map image depicting usage of floors in a functional facility by client devices over an extended period of time is shown. The heat map refers to usage over a 72 hour period, e.g., from April 1, 2015 to April 3, 2015.

[0317] Fig.14 An example snapshot image of a floor recorded at a first recording time (eg, at 8:00 AM on April 1, 2015) is shown.

[0318] Fig.15 An example snapshot image of a floor recorded at a second recording time (eg, at 10:30 am on April 1, 2015) is shown.

[0319] Fig.16 An example snapshot image of a floor recorded at a third recording time (eg, at 1:00 PM on April 1, 2015) is shown.

[0320] Green areas indicate areas that were vacant when the snapshot image was recorded. Red areas indicate areas that were occupied when the snapshot was recorded.

[0321] refer to Fig.17 , which schematically illustrates an article of manufacture 17000 according to some embodiments. The article of manufacture 17000 may include a non-transitory tangible machine-readable storage medium 17100 storing logic 17120 , which may be used to perform at least some functions of the facility monitoring engine 2100 , for example.

[0322] Unless otherwise stated, use of the expression "and / or" between the last two members of a list of options for selection indicates that selection of one or more of the listed options is appropriate and can be made.

[0323] In the claims or description of the present application, unless otherwise stated, adjectives such as "substantially" and "approximately" that modify conditions or relationship characteristics of one or more features of an embodiment of the present invention are understood to mean that the conditions or features are limited to a permissible range that is acceptable for the operation of the embodiment for the application for which it is intended.

[0324] It should be understood that where the claims or specification refer to "a" or "an" element, such reference should not be interpreted as there being only one of the element.

[0325] In the specification and claims of this application, each verb "comprise", "include" and "have" and their cognates are used to indicate one or more objects of the verb, not necessarily a complete listing of the subject of the verb or components, elements or parts of the subject.

[0326] The term "real time" as used herein may also encompass the meaning of the term "substantially real time" or "approximately real time".

[0327] According to one embodiment, the platform and associated receiver can detect communication signals transmitted from a computerized end-user device, which can include, for example, a multi-function mobile communication device also known as a "smartphone", a personal computer, a laptop, a tablet computer, a personal digital assistant, a wearable device, a handheld computer, a notebook computer, a vehicle-mounted device, and / or a fixed device.

[0328] It should be noted that the term "detecting" and its grammatical variations may encompass any process of achieving such "detecting", including sensing and / or monitoring.

[0329] The various features and steps discussed above and other known equivalents of each such feature or step can be mixed and matched by a person of ordinary skill in the art to perform a method according to the principles described herein. Although the present disclosure has been provided in the context of certain embodiments and examples, it will be understood by a person of ordinary skill in the art that the present disclosure extends beyond the specifically described embodiments to other alternative embodiments and / or uses and its obvious modifications and equivalents. Therefore, the present disclosure is not intended to be limited by the specific disclosure of the embodiments herein. For example, any digital computer system can be configured or otherwise programmed to implement the method disclosed herein, and insofar as a specific digital computer system is configured to implement such a method, it is within the scope and spirit of the present disclosure. Once a digital computer system is programmed to perform a specific function according to computer executable instructions from a program software implementing the method disclosed herein, it actually becomes a special-purpose computer dedicated to an embodiment of the method disclosed herein. The technology required to achieve this is well known to a person of ordinary skill in the art, and is therefore not further described herein. The methods and / or processes disclosed herein may be implemented as a computer program product, such as a computer program tangibly embodied in an information carrier, such as a computer program embodied in a non-transitory computer-readable and / or non-transitory machine-readable storage device and / or a propagated signal, for execution by a data processing device including, for example, one or more programmable processors and / or one or more computers, or for controlling the operation of the data processing device. The terms "non-transitory computer-readable storage device" and "non-transitory machine-readable storage device" include distributed media, intermediate storage media, execution memory of a computer, and any other medium or device capable of storing for later reading by a computer program implementing an embodiment of the methods disclosed herein. The computer program product may be deployed to execute on one computer or on multiple computers at one site or distributed over multiple sites and interconnected by a communication network.

[0330] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device create a device for implementing the functions / actions specified in one or more boxes of the schematic flowchart and / or schematic block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, which can guide a computer, a programmable data processing device, or other device to operate in a specific manner, so that the computer-readable storage medium in which the instructions are stored includes an article of instruction that implements various aspects of the functions / actions specified in one or more boxes in the flowchart and / or block diagram.

[0331] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device, so that a series of operational steps are performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable apparatus, or other device implement the functions / actions specified in one or more boxes of the flowchart and / or block diagram.

[0332] The term "engine" may include one or more computer modules, where a module may be a self-contained hardware and / or software component that interfaces with a larger system (Alan Freedman, "The Computer Glossary 268", (8th ed. 1998)). A module may include machine or machine executable instructions. A module may be embodied by a circuit or controller that is programmed to cause the system to implement the methods, processes, and / or operations disclosed herein. For example, a module may be implemented as a hardware circuit including, for example, a custom VLSI circuit or gate array, off-the-shelf semiconductors such as logic chips, transistors, or other discrete components. A module may also be implemented in a programmable hardware device such as a field programmable gate array, programmable array logic, or a programmable logic device.

[0333] In the specification, unless otherwise stated, adjectives such as "substantially" and "approximately" that modify conditions or relationship characteristics of one or more features of an embodiment of the present invention should be understood to mean that the conditions or features are limited to a permissible range that is acceptable for the operation of the embodiment for the application for which it is intended.

[0334] The term "operably coupled" may encompass the meanings of the terms "responsively coupled," "communicably coupled," and the like.

[0335] Unless otherwise indicated, the word "or" in the specification and claims is considered as an inclusive "or" rather than an exclusive "or" and means at least one of the items it conjoins or any combination thereof.

[0336] It should be understood that, for the sake of clarity, certain features of the present invention described in the context of different embodiments or examples may also be provided in combination in a single embodiment. Conversely, for the sake of brevity, various features of the present invention described in the context of a single embodiment may also be provided individually or in any suitable sub-combination or as appropriate in any other described embodiment of the present invention. Certain features described in the context of various embodiments should not be considered essential features of those embodiments, unless the embodiment does not work without those elements.

[0337] It is important to note that the methods discussed herein are not limited to those figures or corresponding descriptions. For example, the methods may include additional or even fewer processes or operations than those described in the accompanying drawings. In addition, the embodiments of the methods are not necessarily limited to the chronological order as illustrated and described herein.

[0338] Discussions herein utilizing terms such as "process," "evaluate," "compute," "determine," "establish," "analyze," "examine," "estimate," "derive," or similar terms may refer to the operation and / or processing of a computer, computing platform, computing system, or other electronic computing device that operates on and / or transforms data represented as physical (e.g., electronic) quantities within a computer's registers and / or memory into other data similarly represented as physical quantities within a computer's registers and / or memory or other information storage medium that may store instructions to perform the operations and / or processes. The terms "determine" and "estimate" may also refer to "heuristic determination" and "heuristic estimation," respectively.

[0339] Throughout the application, various embodiments of the present invention can be presented in range format. It should be understood that the description of the range format is only for convenience and brevity, and should not be interpreted as an inflexible limitation on the scope of the present invention. Therefore, the description of the range should be deemed to specifically disclose all possible sub-ranges and single numerical values ​​within the range. For example, a range description such as 1 to 6 should be deemed to specifically disclose sub-ranges such as 1 to 3, 1 to 4, 1 to 5, 2 to 4, 2 to 6, 3 to 6, and single numbers within the range, such as 1, 2, 3, 4, 5 and 6. Regardless of the width of the range, this applies.

[0340] Whenever a numerical range is indicated herein, it is intended to include any cited numeral (fractional or integer) within the indicated range. The phrases "between" a first indicated numeral and a second indicated numeral and "between" a first indicated numeral to a second indicated numeral are used interchangeably herein and are intended to include the first and second indicated numerals and all fractional and integer numerals therebetween.

[0341] While the invention has been described with respect to a limited number of embodiments, these embodiments should not be construed as limitations on the scope of the invention, but rather as examples of some embodiments.

Claims

1. A system for monitoring the use of a functional facility, comprising: a plurality of detectors for detecting the presence of client devices in the functional facility, wherein the plurality of detectors are geographically mapped into the functional facility; one or more processors; as well as One or more memories storing computer executable instructions executable by the one or more processors to cause the system to perform the following steps: determining a location point estimate of the client device based on measurements of electromagnetic radiation received from the client device by at least one of the plurality of detectors, the location point estimate being associated with a user and wirelessly coupled to at least one of the plurality of detectors; as well as Map the client device to another location, which is considered to be the nearest free location in the functional facility when the following conditions 1 and 2 are met: Condition 1: if no other client device at the other location is connected to the LAN, and / or if the WLAN communication link capacity of the other location is not exceeded; Condition 2: If the other location is within a specific range of the location point estimate determined for the client device.

2. The system of claim 1, wherein: The steps also include: According to one or more classification criteria, the location point information of the functional facility is classified into a selected one of two or more location classifications according to a stay time standard, and the two or more location classifications include: "occupied", "idle" and "standby", Wherein, if the location point is idle for a time period exceeding a first idle time period threshold, the location point is considered to be "idle"; wherein the location point information is classified as "inactive" if a client device leaves a location point and the same client device returns to a previous location point within a specific time interval and no other client device is connected to the location point within this time interval, and wherein the time period that has elapsed since the client device left the location point does not exceed a time period greater than the first idle time period threshold; and If a location point is continuously occupied by one or more client devices, as long as such a time period exceeds a second dwell time period threshold, the location point is considered to be “occupied”.

3. A method for monitoring the use of a functional facility, comprising: geographically mapping at least one detector in the functional facility; determining a location point estimate of the client device based on measurements of electromagnetic radiation received from the client device by at least one of the plurality of detectors, the location point estimate being associated with a user and wirelessly coupled to at least one of the plurality of detectors; as well as Map the client device to another location, which is considered to be the nearest free location in the functional facility when the following conditions 1 and 2 are met: Condition 1: if no other client device at the other location is connected to the LAN, and / or if the WLAN communication link capacity of the other location is not exceeded; Condition 2: If the other location is within a specific range of the location point estimate determined for the client device.

4. The method of claim 3, wherein: The steps also include: According to one or more classification criteria, the location point information of the functional facility is classified into a selected one of two or more location classifications according to a stay time standard, and the two or more location classifications include: "occupied", "idle" and "standby", Wherein, if the location point is idle for a time period exceeding a first idle time period threshold, the location point is considered to be "idle"; wherein the location point information is classified as "inactive" if a client device leaves a location point and the same client device returns to a previous location point within a specific time interval and no other client device is connected to the location point within the time interval, and wherein the time period that has elapsed since the client device left the location point does not exceed a time period greater than the first idle time period threshold; and If a location point is continuously occupied by one or more client devices, as long as such a time period exceeds a second dwell time period threshold, the location point is considered to be “occupied”.

Citation Information

Patent Citations

  • Time-share occupation method of geographic positions

    CN103198706A

  • Campus study room real-time information sharing platform on basis of mobile terminals and mobile network

    CN103699936A