Note : Les descriptions sont présentées dans la langue officielle dans laquelle elles ont été soumises.
CA 2959365 2017-02-28
-1-
OCCUPANCY INFORMATION PROCESSING FOR
FACILITATING BUILDING MANAGEMENT
BACKGROUND
1. Field =
Embodiments of this invention relate to occupancy information processing and
more particularly to occupancy information processing for facilitating
management or control of one or more buildings or areas.
2. Description of Related Art
Occupancy information may be useful data for managing buildings or areas. In
particular, occupancy information for areas in or around a building may be
used
to determine how to devote resources to various aspects of building
management. For example, such information may be used by computer-
implemented building environment management systems to determine how and
when to control or adjust environment conditions in the building and this may
be
helpful to increase efficiency and reduce wasted use of resources. However,
systems for detecting occupancy information may be difficult or expensive to
install or maintain and/or the information detected may come in the form of
raw
location information, which may be difficult for some building management
system computers to interpret and/or apply. For example, some building
management system computers may not be configured to interpret such
information, which may not easily map to the systems of the building
management system.
SUMMARY
In accordance with one embodiment, there is provided a computer-implemented
method of occupancy information processing for facilitating environmental
control
of a building. The method involves receiving signals representing a plurality
of
. -
CA 2959365 2017-02-28
-2-
occupant-associated locations, each of the plurality of occupant-associated
locations associated with one of a plurality of occupants in or around the
building,
receiving signals representing a zone of the building, determining a count of
occupants within the zone, said determining involving determining a count of
the
plurality of occupant-associated locations within the zone, and producing
signals
representing the count of occupants within the zone for causing the count of
occupants to be transmitted to a building management system to cause the
building management system to control at least one environmental condition of
the zone based at least in part on the count of occupants within the zone.
Receiving signals representing the zone may involve receiving signals
representing a plurality of subzones defining the zone and determining the
count
of occupants within the zone may involve, for each occupant-associated
location
of the plurality of occupant-associated locations: comparing the occupant-
associated location to one or more of the plurality of subzones to find a
corresponding subzone within which the occupant-associated location is
located,
and, when the corresponding subzone is found, stopping said comparing for the
occupant-associated location and incrementing the count of the plurality of
occupant-associated locations within the zone.
At least one of the plurality of subzones may overlap another of the plurality
of
subzones such that an occupant-associated location may be within two or more
subzones.
Determining the count of occupants within the zone may involve scaling the
count of occupant-associated locations within the zone by a correction factor,
the
correction factor representing expected occupants per occupant-associated
location.
The method may involve receiving signals representing a usage type associated
CA 2959365 2017-02-28
-3-
with the zone and setting the correction factor based on the usage type.
Setting the correction factor based on the usage type may involve setting the
correction factor to between about 0.9 and 1.3 occupants per occupant-
associated location when the usage type indicates that the zone is an open
office.
Setting the correction factor based on the usage type may involve setting the
correction factor to about 1.1 occupants per occupant-associated location when
the usage type indicates that the zone is an open office.
Setting the correction factor based on the usage type may involve setting the
correction factor to between about 0.7 and 1.1 occupants per occupant-
associated when the usage type indicates that the zone is a lecture room.
Setting the correction factor based on the usage type may involve setting the
correction factor to about 0.9 occupants per occupant-associated when the
usage type indicates that the zone is a lecture room.
The occupant-associated locations may include device locations of devices,
each
of the devices associated with an occupant of the plurality of occupants.
Receiving the signals representing the plurality of occupant-associated
locations
may involve receiving wireless networking signals from each of the devices and
determining the device locations based on strengths of the received wireless
networking signals.
Receiving the signals representing the zone of the building may involve
receiving
the signals from a user via a user interface.
= -
CA 2959365 2017-02-28
-4-
The user interface may include a graphical user interface and the method may
involve producing signals for causing at least one display to display the
graphical
user interface.
The method may involve receiving signals identifying a subsystem of the
building
management system that controls the at least one environmental condition of
the
zone and producing signals representing the count of occupants within the zone
may involve producing signals associating the count of occupants with the
subsystem.
The zone may be a first zone of a plurality of zones and the method may
involve:
determining, for each of the plurality of zones, a respective count of
occupants
within the zone, and producing signals representing the counts of occupants
within the zones for causing the counts of occupants to be transmitted to the
building management system.
The method may involve controlling the at least one environmental condition of
the zone based at least in part on the count of occupants within the zone.
In accordance with another embodiment, there is provided a computer-
implemented method involving causing at least one processor to perform any of
the above methods.
In accordance with another embodiment, there is provided a system for
facilitating monitoring of a first user of a plurality of users, the system
including at
least one processor configured to execute any of the above methods.
In accordance with another embodiment, there is provided a computer readable
medium having stored thereon codes which when executed by at least one
processor cause the at least one processor to perform any of the above
, .
CA 2959365 2017-02-28
-5-
methods.
In accordance with another embodiment, there is provided a system for
occupancy information processing for facilitating environmental control of a
building. The system includes means for receiving signals representing a
plurality of occupant-associated locations, each of the plurality of occupant-
associated locations associated with one of a plurality .of occupants in or
around
the building, means for receiving signals representing a zone of the building,
means for determining a count of occupants within the zone, said determining
involving determining a count of the plurality of occupant-associated
locations
within the zone, and means for producing signals representing the count of
occupants within the zone for causing the count of occupants to be transmitted
to
a building management system to cause the building management system to
control at least one environmental condition of the zone based at least in
part on
the count of occupants within the zone.
Other aspects and features of embodiments of the invention will become
apparent to those ordinarily skilled in the art upon review of the following
description of specific embodiments of the invention in conjunction with the
accompanying figures.
BRIEF DESCRIPTION OF THE DRAWINGS
In drawings which illustrate embodiments of the invention,
Figure 1 is a schematic view of a system for processing occupancy
information in accordance with various embodiments of the
invention;
Figure 2 is a schematic view of the system shown in Figure 1 in accordance
with various embodiments of the invention;
, =
CA 2959365 2017-02-28
-6-
Figure 3 is a schematic view of an occupancy information analyzer shown in
the system of Figure 2 including a processor circuit in accordance
with various embodiments of the invention;
Figure 4 is a flowchart depicting blocks of code for directing the
occupancy
information analyzer of the system of Figure 2 to perform
occupancy information processing functions in accordance with
various embodiments of the invention;
Figure 5 is a representation of an exemplary device location message that
may be used in the system shown in Figure 2;
Figure 6 is a representation of an exemplary device location record that
may
be used in the system shown in Figure 2;
Figure 7 is a flowchart depicting blocks of code that may be included in
the
flowchart of Figure 4 in accordance with various embodiments of
the invention;
Figure 8 is a representation of a graphical user interface that may be
displayed by a display of a user interface system included in the
system shown in Figure 2 in accordance with embodiments of the
invention;
Figure 9 is a representation of a graphical user interface that may be
displayed by a display of a user interface system included in the
system shown in Figure 2 in accordance with embodiments of the
invention;
_ Ts/M4 1.R+.0F+ ___
14=603~1144/WORIV.
CA 2959365 2017-02-28
-7-
Figure 10 is a representation of an exemplary subzone definition message
that may be used in the system shown in Figure 2;
Figure 11 is a representation of an exemplary zone record that may be used
in the system shown in Figure 2;
Figure 12 is a representation of an exemplary subzone record that may be
used in the system shown in Figure 2;
Figure 13 is a representation of four exemplary point records that may be
used in the system shown in Figure 2;
Figure 14 is a representation of an exemplary usage type definition message
that may be used in the system shown in Figure 2;
Figure 15 is a representation of an exemplary zone record that may be used
in the system shown in Figure 2;
Figure 16 is a representation of a graphical user interface that may be
displayed by the display of the user interface system included in the
system shown in Figure 2 in accordance with embodiments of the
invention
Figure 17 is a representation of an exemplary subsystem identifier message
that may be used in the system shown in Figure 2;
Figure 18 is a representation of an exemplary zone record that may be used
in the system shown in Figure 2;
Figure 19 is a representation of a graphical user interface that may be
.
-
CA 2959365 2017-02-28
-8-
displayed by a display of a user interface system included in the
system shown in Figure 2 in accordance with embodiments of the
invention;
Figure 20 is a representation of an exemplary subzone definition message
that may be used in the system shown in Figure 2;
Figure 21 is a representation of an exemplary subzone record that may be
used in the system shown in Figure 2;
Figure 22 is a representation of four exemplary point records that may be
used in the system shown in Figure 2;
Figure 23 is a representation of an exemplary zone record that may be used
in the system shown in Figure 2;
Figure 24 is a representation of a graphical user interface that may be
displayed by the display of the user interface system included in the
system shown in Figure 2 in accordance with embodiments of the
invention;
Figure 25 is a representation of an exemplary zone record that may be used
in the system shown in Figure 2;
Figure 26 is a flowchart depicting blocks of code that may be included in
the
flowchart of Figure 4 in accordance with various embodiments of
the invention;
Figure 27 is a flowchart depicting blocks of code that may be included in
the
flowchart of Figure 26 in accordance with various embodiments of
CA 2959365 2017-02-28
-9-
the invention;
Figure 28 is a representation of an exemplary zone record that may be used
in the system shown in Figure 2;
Figure 29 is a representation of an exemplary zone record that may be used
in the system shown in Figure 2;
Figure 30 is a representation of an exemplary zone record that may be used
in the system shown in Figure 2;
Figure 31 is a representation of an exemplary correction factor table that
may
be used in the system shown in Figure 2;
Figure 32 is a representation of an exemplary zone record that may be used
in the system shown in Figure 2;
Figure 33 is a representation of an exemplary occupancy count message that
may be used in the system shown in Figure 2;
Figure 34 is a representation of a display that may be presented by the
display of the user interface system included in the system shown
in Figure 2 in accordance with embodiments of the invention
Figure 35 is a flowchart depicting blocks of code for directing the
occupancy
information analyzer of the system of Figure 2 to perform
occupancy information processing functions in accordance with
various embodiments of the invention;
Figure 36 is a representation of an exemplary correction factor message
that
CA 2959365 2017-02-28
-10-
may be used in the system shown in Figure 2; and
Figure 37 is a representation of an exemplary zone record that may be used
in the system shown in Figure 2.
DETAILED DESCRIPTION
Referring to Figure 1, according to one embodiment of the invention, there is
provided a system 10 for processing occupancy information. In some
embodiments, the system 10 may be configured to facilitate environmental
control of a building or environmentally controlled area, for example.
The system 10 includes a location detecting system 12, an occupancy
information analyzer 14, and a building management system 16. The location
detecting system 12 may be in communication with the occupancy information
analyzer 14 and the occupancy information analyzer 14 may be in
communication with the building management system 16.
The location detecting system 12 may be configured to detect locations related
to
occupants in the building. However, in some embodiments, this raw location
information may not be useful to the building management system 16, since the
building management system may not be configured to relate the detected
locations to occupancy and/or system information related to the building
management system 16. Accordingly, in various embodiments, the occupancy
information analyzer 14 may be configured to receive the occupant-associated
location information from the location detecting system 12, to receive zone
information, which may relate to system information related to the building
management system, and to generate occupancy information which the building
management system 16 can use. In particular, the occupancy information
analyzer 14 may be configured to determine expected counts of occupants within
CA 2959365 2017-02-28
-11-
the zones and to cause the counts of occupants within the zones to be
transmitted to the building management system 16. In some embodiments, the
occupancy information analyzer 14 may be configured to determine the counts of
occupants within the zones based at least in part on a determination of counts
of
the occupant-associated locations within the zones.
Referring to Figure 1, in some embodiments, the location detecting system 12
may be configured to detect occupant-associated locations, which are locations
associated with occupants in a building. For example, in some embodiments, the
location detecting system 12 may be configured to detect device locations of
devices in or around a building. The devices may each be carried by or located
near a respective occupant or person in or around the building and so the
device
locations may be expected to generally represent a location of an occupant
with
which they are associated. In some embodiments, the location detecting system
12 may be configured to determine occupant-associated locations through other
means.
The location detecting system 12 may be configured to transmit signals
representing the occupant-associated locations to the occupancy information
analyzer 14. For example, in some embodiments, the signals may be electronic
or electrical signals sent over a network connection, which represent a
message
including the occupant-associated locations. The occupancy information
analyzer 14 may be configured to receive the signals representing the occupant-
associated locations from the location detecting system 12.
The occupancy information analyzer 14 may be configured to also receive
signals representing one or more zones of the building. In some embodiments,
the zones may represent areas of interest in the building. For example, in
some
embodiments, each of the zones may represent an area with environmental
conditions controlled by a respective subsystem of the building management
CA 2959365 2017-02-28
-12-
system 16. For example, in some embodiments, a subsystem of the building
management system may include a particular heating, ventilation, and air-
conditioning ("HVAC") unit, an air handling unit, a rooftop unit, a variable
air
volume ("VAV") box, or another actuator that is able to be controlled. In some
embodiments, a zone may represent an area that is serviced by a particular set
of actuator controlled environmental control units, such as HVAC units, for
example.
In some embodiments, the signals representing the zones may be provided by a
user such as a building system manager, for example, via a user interface in
communication with the occupancy information analyzer 14. The user interface
may include a display and input devices such as a keyboard and a mouse, for
example. The user may interact with the user interface to define the zones of
the
building and cause signals representing the zones to be sent to the occupancy
information analyzer 14.
The occupancy information analyzer 14 may be configured to then determine a
count of occupants within the zones, the determining involving determining a
count of ones of the plurality of occupant-associated locations within each of
the
zones. In some embodiments, the count of occupants may be a representation
of the expected number of occupants in the zone which may be, for example, a
decimal number and/or a normalized value and not an actual count of occupants
within the zone.
In some embodiments, the occupancy information analyzer 14 may be
configured to, for each of the occupant-associated locations, compare the
occupant-associated location to one or more of the plurality of subzones to
find a
corresponding subzone within which the occupant-associated location is located
and when the corresponding subzone is found, to stop comparing the occupant-
associated location and increment a count of the plurality of occupant-
associated
- _ _________________ 00.1..P$ RV. a , __ ,,?,
1.195,90 N.'', ....6441Vra - 1.....041~.1~1.40~144eitern,
CA 2959365 2017-02-28
-13-
locations within the zone, and thereby determine how many of the occupant-
associated locations are within each of the zones. The occupancy information
analyzer 14 may be configured to then determine the expected count of
occupants within the zone as a function of the count of occupant-associated
locations which are determined to be within the zone. In some embodiments, for
example, it may be expected that the count of occupants within the zone may be
proportional to the count of occupant-associated locations which are
determined
to be within the zone and so the occupancy information analyzer 14 may scale
the count of occupant-associated locations within the zone to determine the
expected count of occupants.
The occupancy information analyzer 14 may be configured to produce signals
representing the count of occupants within the zone for causing the count of
occupants to be transmitted to the building management system 16. In some
embodiments, the occupancy information analyzer 14 may be in communication
with the building management system 16 through an intermediary, such as a
gateway.
The building management system 16 may be configured to receive the signals
representing the count of occupants within the zone and to use that
information
for managing the building. In some embodiments, the building management
system 16 may be configured to control at least one environmental condition of
the zone based on the received signals representing the count of occupants.
For
example, in some embodiments, the building management system 16 may be
configured to provide airflow to, heat and/or cool the zone based, at least in
part,
on the count of occupants within the zone. In some embodiments, the building
management system 16 may be configured to compare the count of occupants in
a zone with a threshold count and, if the count moves below the threshold
count,
turn off a subsystem, such as an air handling unit, for example, associated
with
the zone and if the count is moves above the threshold count, turn on the air
CA 2959365 2017-02-28
-14-
handling unit. In some embodiments, the building management system 16 may
be configured to control a rate of air flow for the zone based on the count of
occupants. In some embodiments, this may improve comfortability of the
building occupants.
Referring now to Figure 2, there is provided an embodiment of the system 10
shown in Figure 1. The system 10 shown in Figure 2 includes the location
detecting system 12, the occupancy information analyzer 14, and the building
management system 16. In the embodiment shown, the system 10 also includes
a user interface system 130 for providing a user interface for a user to
communicate with the occupancy information analyzer 14. In some
embodiments, the user interface system 130 may include a client computer in
networked communication with the occupancy information analyzer 14. In some
embodiments, the user interface system 130 may include a client computer
connected to a private network in communication with the interface 124 of the
I/O
interface 112 shown in Figure 3. In some embodiments, the user interface
system 130 may include a client computer connected to a public network, such
as the Internet, for example, in communication with the interface 124 of the
I/O
interface 112 shown in Figure 3. In various embodiments, the user interface
system 130 may include at least one display and at least one input device,
such
as a keyboard and/or a pointing device or pointer, such as, a mouse.
Referring to Figure 2, in the embodiment shown, the system 10 also includes a
gateway 18, which may act as an intermediary between the occupancy
information analyzer 14 and the building management system 16, for
facilitating
communications from the occupancy information analyzer 14 to the building
management system 16.
Referring to Figure 2, in the embodiment shown, the location detecting system
12
includes wireless access point ("WAP") devices 50 in communication with a
CA 2959365 2017-02-28
-15-
network 60, which is in communication with a location detecting server
computer
70. In some embodiments, the WAP devices 50 may include one or more
routers, switches, hubs, or another device for providing a wireless access
point,
for example. In some embodiments, the WAP devices 50 may provide access to
a network, such as the Internet. In some embodiments, the location detecting
server computer 70 may be running wireless network analytic software, such as,
for example, CMX software by CiscoTm.
Still referring to Figure 2, a plurality of client devices configured for
wireless
communication with the WAP devices 50 are shown at 80. In some
embodiments, each of the client devices 80 may be associated with an occupant
or person who is in or around the building for which the WAP devices 50
provide
wireless network access. For example, the client device 82 may be a mobile
device, such as a smart phone or tablet, for example, which is being carried
by
an occupant of a building and which is in communication with three of the WAP
devices 50, as shown in Figure 2. Although for illustrative purposes, only
communication between the client device 82 and the WAP devices 50 is
explicitly
shown, it will be understood that in various embodiments, each of the client
devices 80 may be in communication with one or more of the WAP devices 50.
Further, while for illustrative purposes, four client devices and three WAP
devices
are shown in Figure 2, in various embodiments, the system 10 may include
numerous WAP devices and client devices. For example, in some embodiments,
the system 10 may include about 6000 WAP devices and for communicating with
about 60,000 client devices. In some embodiments, the number of WAP devices
included in the system 10 may vary. In some embodiments a ratios of about 10-
15 client devices per WAP device may be employed.
Each of the client devices 80 may be found at various locations in or around a
building and the location detecting system 12 may be configured to detect a
respective location for each of the client devices 80. In some embodiments,
the
CA 2959365 2017-02-28
-16-
location detecting server computer 70 may communicate with the WAP devices
50 over the network 60 and may direct the WAP devices 50 to measure a signal
strength received from each of the client devices 80 and the location
detecting
server computer 70 may be configured to determine a location in or around the
building for each of the client devices 80 based at least in part on the
measured
signal strength.
In some embodiments, for example, the location detecting server computer 70
may have stored in memory, physical locations for each of the WAP devices 50
and the location detecting server computer 70 may be configured to use
location
determining techniques, such as, for example, triangulation, to determine
relative
locations of the client devices 80 based at least in part on the signal
strength
measured and the known stored locations of the wireless access points.
The location detecting server computer 70 may be configured to transmit
signals
representing the determined device locations to the occupancy information
analyzer 14. In some embodiments, the location detecting server computer 70
and the occupancy information analyzer 14 may be in communication via a
network connection, and the location detecting server computer 70 may transmit
the signals representing the determined device locations by sending location
information via the network connection.
Occupancy information analyzer - Processor Circuit
Referring now to Figure 3, a schematic view of the occupancy information
analyzer 14 of the system 10 shown in Figure 2 according to an embodiment is
shown. In various embodiments, the occupancy information analyzer 14 may be
implemented as a virtual machine running on a server computer in
communication with the location detecting server computer 70, the user
interface
system 130 and the gateway 18.
CA 2959365 2017-02-28
-17-
Referring to Figure 3, the occupancy information analyzer 14 includes a
processor circuit including an analyzer processor 100 and a program memory
102, a storage memory 104, and an input/output (I/O) interface 112, all of
which
are in communication with the analyzer processor 100. The I/O interface 112
includes an interface 120 for communicating with the location detecting server
computer 70, an interface 122 for communicating with the gateway 18 and an
interface 124 for communicating with the user interface system 130.
In some embodiments, one or more of the interfaces 120, 122, and/or 124 may
facilitate networked communication through a network. The I/O interface 112
may
include one or more network interfaces each having a network interface card
with
an input/output for connecting to a network, through which communications may
be conducted with devices connected to the network, such as the location
detecting server computer 70, the gateway 18, and/or the user interface system
130, for example. In various embodiments, information or messages may be
transmitted and received via the I/O interface 112 using JSON.
In some embodiments, each of the interfaces shown in Figure 3 may include one
or more interfaces and/or some or all of the interfaces included in the I/O
interface 112 may be implemented as combined interfaces or a single interface.
Processor-executable program codes for directing the analyzer processor 100 to
carry out various functions are stored in the program memory 102. The program
memory 102 includes a block of codes 160 for directing the mobile device to
perform occupancy information processing functions. In this specification, it
may
be stated that certain encoded entities such as applications or modules
perform
certain functions. Whenever an application, module or encoded entity is
described as taking an action, as part of, for example, a function or a
method, it
will be understood that a processor (e.g. the analyzer processor 100) is
directed
to take the action by way of programmable codes or processor-executable codes
CA 2959365 2017-02-28
-18-
or instructions defining or forming part of the application.
The storage memory 104 includes a plurality of storage locations including
location 140 for storing occupant-associated location data, location 142 for
storing plan or floor data, location 144 for storing zone data, and location
146 for
storing occupant count correction data. In various embodiments, the plurality
of
storage locations may be stored in a database in the storage memory 104.
In various embodiments, the block of codes 160 may include one or more blocks
of code stored in one or more locations in program memory 102 and/or the
locations 140, 142, 144, and 146 may each include one or more locations in the
storage memory 104.
Each of the program memory 102 and storage memory 104 may be implemented
as one or more storage devices including random access memory (RAM), a hard
disk drive (HDD), a solid-state drive (SSD), a network drive, flash memory, a
memory stick or card, any other form of non-transitory computer-readable
memory or storage medium, and/or a combination thereof. In some
embodiments, the program memory 102, the storage memory 104, and/or any
portion thereof may be included in a device separate from the occupancy
information analyzer 14 and in communication with the occupancy information
analyzer 14 via the I/O interface 112, for example. In various embodiments,
other memory, program memory, blocks of code, storage memory, and locations
in memory described herein may be implemented generally similarly to as
described above for the program memory 102 and the storage memory 104.
Occupancy information processing
Referring to Figure 4, a flowchart depicting blocks of code for directing the
analyzer processor 100 shown in Figure 3 to perform occupancy information
processing functions in accordance with one embodiment is shown generally at
CA 2959365 2017-02-28
-19-
200. The blocks of code included in the flowchart 200 may be encoded in the
block of codes 160 shown in Figure 3 for example.
Referring to Figure 4, the flowchart 200 begins with block 202 which directs
the
analyzer processor 100 shown in Figure 3 to receive signals representing a
plurality of occupant-associated locations, each of the plurality of occupant-
associated locations associated with a respective occupant of a plurality of
occupants in or around the building.
As discussed above, in various embodiments, the location detecting server
computer 70 of the location detecting system 12 shown in Figure 2 may transmit
signals representing device locations to the occupancy information analyzer
14,
the device locations acting as occupant-associated locations. In some
embodiments, the location detecting server 70 may be configured to send device
location messages representing the device locations to the occupancy
information analyzer 14.
Referring to Figure 4, block 202 may direct the analyzer processor 100 to
receive
the device location messages from the location detecting server computer 70
via
the interface 120 of the I/O interface 112 shown in Figure 3. In some
embodiments, block 202 may have directed the analyzer processor 100 to
request the device location messages from the location detecting server
computer 70, such as, for example, by transmitting a query or request in
accordance with an API of the location detecting server computer 70.
Referring to Figure 5, there is shown an exemplary device location message 300
which may be received by the analyzer processor 100 via the interface 120
shown in Figure 3 upon execution of block 202. The device location message
300 includes a floor reference identifier field 302 for identifying a floor or
plan
which represents a floor or area that the device associated with the device
= , =
CA 2959365 2017-02-28
-20-
location message 300 was detected, an x-coordinate field 304 for storing an x-
coordinate location of the device, and a y-coordinate field 306 for storing a
y-
coordinate location of the device. In various embodiments, the floor reference
identifier field may be, for example, a unique identifier associated with a
floor or
plan stored in the location 142 of the storage memory 104. In some
embodiments, the x-coordinate and y-coordinate fields may store values which
represent the location coordinates of the device in feet.
In various embodiments, numerous device location messages may be received
by the analyzer processor 100 at block 202. In some embodiments, a single
communication from the location detecting server computer 70 may include
information representing a plurality of device location messages each
including
information as shown in Figure 5 representing a respective device location.
In various embodiments, block 202 may direct the analyzer processor 100 to
store a representation of the received occupant-associated location
information
in memory. For example, in some embodiments, block 202 may direct the
analyzer processor 100 to store in the location 140 of the storage memory 104
shown in Figure 3, for each received device location, a device location
record, an
example of which is shown at 340 in Figure 6.
Referring to Figure 6, the device location record 340 includes a device
identifier
field 342, a floor reference identifier field 344, an x-coordinate field 346,
a y-
coordinate field 348, and a time retrieved field 350. Block 202 may direct the
analyzer processor 100 to generate a unique identifier for the device
identifier
field 342. Block 202 may direct the analyzer processor 100 to set the values
stored in the floor reference identifier field 344, the x-coordinate field
346, and
the y-coordinate field 348 to values corresponding to those included in the
corresponding fields of the device location message 300 shown in Figure 5.
Block 202 may direct the analyzer processor 100 to set the time retrieved
field
CA 2959365 2017-02-28
-21-
350 to a current system time.
In various embodiments, block 202 may direct the analyzer processor. 100 to
generate and store a device location record in the location 140 of the storage
memory 104 for each of the device location messages received.
In various embodiments, block 202 may direct the analyzer processor 100 to
receive further or alternative information from the location detecting server
computer 70, including, for example, records having additional or fewer fields
than those shown in Figure 5. In some embodiments, block 202 may direct the
analyzer processor 100 to ignore various fields and values received from the
location detecting server computer 70. In some embodiments, the location
detecting server computer 70 may send to the analyzer processor 100 various
information, such as MAC addresses, for example, that should not be stored by
the occupancy information analyzer 14 for privacy reasons and so block 202 may
direct the analyzer processor 100 to ignore such information and not keep a
record of such information in the storage memory 104.
Referring back to Figure 4, block 204 directs the analyzer processor 100 to
receive signals representing one or more zones of the building. In some
embodiments, the zones of the building may define areas which are of interest
to
building management and/or for data analysis. For example, in some
embodiments, the zones may represent portions of the building which are
serviced by a single environmental control subsystem, as discussed above,
which may include a particular HVAC unit, for example. In such embodiments,
occupancy information separated by zone may help with controlling the
environment of the building. In some embodiments, using zone based occupancy
counting areas may facilitate zones being directly matched to building control
zones. For example, in some embodiments, matched zones may be smaller
zones required by VAV units, or larger zones as described by AHUs. In some
CA 2959365 2017-02-28
-22-
embodiments, zones matched to building control areas may facilitate later use
by
the building management system 16 or control programmers who prescribe
control schedules and are associated with the building management system 16.
In some embodiments, the block 204 may be executed during setup of the
occupancy information analyzer 14 and prior to block 202 being executed.
In some embodiments, a user who may be associated with building
management, for example, may interact with user input devices of the user
interface system to transmit signals to the user interface system 130 and the
user
interface system 130 may receive the signals and transmit signals representing
the zone information to the occupancy information analyzer 14. For example, in
some embodiments, the user may login or set up a communication link with the
occupancy information analyzer 14 by using a web browser installed on the user
interface system 130 and then the user may provide the zone information using
user input devices of the user interface system 130. Referring to Figure 4,
block
204 may direct the analyzer processor 100 to receive the signals representing
the zone information from the user interface system 130 via the interface 124
of
the I/O interface 112 shown in Figure 3.
Referring to Figure 7, there is shown at 400 a flowchart representing blocks
of
codes which may be included in the block 204 of the flowchart 200 shown in
Figure 4, in accordance with various embodiments. The flowchart 400 begins
with block 402 which directs the analyzer processor 100 to receive signals
representing one or more subzones associated with a zone. In some
embodiments, block 402 may direct the analyzer processor 100 to produce
signals for causing at least one display to display one or more graphical user
interface ("GUI") requesting zone information from a user. For example, in
some
embodiments, block 402 may direct the analyzer processor 100 to transmit
signals via the interface 124 of the I/O interface 112 to the user interface
system
130 shown in Figure 2 to cause a display of the user interface system to
display
kt
CA 2959365 2017-02-28
-23-
a graphical user interface ("GUI") 450 as shown in Figure 8.
In some embodiments, block 402 of the flowchart 400 shown in Figure 7 may
direct the analyzer processor 100 to retrieve a plan or map from the location
142
of the storage memory 104 shown in Figure 3 and to transmit signals
representing the plan to the user interface system 130 shown in Figure 2 to
cause the user interface system 130 to include a representation 451 of the
plan
in the GUI 450 shown in Figure 8. In various embodiments, the plan may be
stored in the location 142 of the storage memory 104 in association with an
identifier such as, for example, a floor reference identifier. In some
embodiments,
the plan and identifier may have been previously loaded by a user or
administrator into the location 142 of the storage memory 104.
In some embodiments, the GUI 450 may include representations of detection
points, which may represent locations of the WAP devices 50 shown in Figure 2.
Referring to Figure 8, the GUI 450 may include a "New Zone" section 452
including a zone name field 454 for the user to interact with and provide a
zone
name for a new zone which the user wishes to define. In various embodiments,
a user may use the input devices of the user interface system 130 such as the
keyboard and pointing device to produce signals for interacting with the GUI
450
and entering a zone name in the zone name field 454.
The user may then use the pointing device of the user interface system 130
shown in Figure 2 to define a shape, for a subzone of the zone, on the
representation 451 of the plan shown in Figure 8. In some embodiments, the
user may define the shape using the pointing device. The shape may be defined
by points, each having x and y coordinates relative to the plan, which
represent
locations of corners of the shape. The user may define the points by clicking
and
dragging the shape on the representation 451 of the plan. Referring to Figure
9,
CA 2959365 2017-02-28
-24-
there is shown the GUI 450, with a subzone 460 having a shape defined by a
user. In the embodiment shown, the subzone 460 is defined by a rectangular
shape. In various embodiments, other shapes may be used to define the
subzone.
In some embodiments, the user may select a save icon 456 and, in response, the
user interface system 130 may transmit signals representing the zone name
entered in the zone name field 454 and the four points defining the subzone
defined by the user to the occupancy information analyzer 14. In various
embodiments, the user interface system 130 may transmit a representation of a
subzone definition message to the analyzer processor 100 via the interface 124
of the I/O interface 112 shown in Figure 3.
An exemplary subzone definition message 500 is shown at 500 in Figure 10 and
includes a zone name field 502 and first, second, third, and fourth pairs of x
and
y coordinate fields 504, 506, 508, and 510 defining locations for each point
or
corner of the subzone 460 defined by the user on the GUI 450 shown in Figure
9.
Referring to Figure 7, Block 402 may direct the analyzer processor 100 to
receive
the signals representing the subzone definition message 500 and to store a
representation of the information included in the message in the location 144
of
the storage memory 104 shown in Figure 3. In some embodiments, block 402
may direct the analyzer processor 100 to store the information included in the
subzone definition message 500 in one or more records stored in the location
144 of the storage memory 104. For example, block 402 may direct the analyzer
processor 100 to store the information in a zone record, a subzone record, and
point records. An exemplary zone record 550, an exemplary subzone record
580, and exemplary point records 640, 650, 660, and 670 in accordance with
various embodiments of the invention are shown in Figures 11, 12, and 13.
=
,OF 414, 40* __ =*,
=+al,
,
CA 2959365 2017-02-28
-25-
Referring to Figure 11, the zone record 550 includes a zone name field 552, a
floor reference identifier field 553, and a linked subzone identifier field
554.
Referring to Figure 12, the subzone record 580 includes a subzone identifier
field
582, a linked zone name field 583, a floor reference identifier field 585, and
first,
second, third, and fourth point identifier fields 584, 586, 588, and 590.
Referring
to Figure 13, the point record 640 includes a point identifier field 642, an x-
coordinate field 644, and a y-coordinate field 646 and each of the point
records
650, 660, and 670 similarly include a point identifier field, an x-coordinate
field
and a y-coordinate field.
Referring back to Figure 7, block 402 may direct the analyzer processor 100
shown in Figure 3 to generate unique identifiers for each of the point
identifier
fields of the point records 640, 650, 660, and 670 shown in Figure 13 and to
set
the point identifier fields 584, 586, 588, and 590 of the subzone record 580
shown in Figure 12 to these identifiers, in order to link the point records
with the
subzone record. Block 402 may direct the analyzer processor 100 to generate a
unique identifier for the subzone identifier field 582 of the subzone record
580
shown in Figure 12 and to set the linked subzone identifier field 554 of the
zone
record 550 shown in Figure 11 to store this identifier, in order to link the
subzone
record with the zone record.
Block 402 may direct the analyzer processor 100 to set the zone name field 552
of the zone record 550 to the value of the zone name field 502 of the subzone
definition message 500 and to set the x and y coordinate fields of the point
records 640, 650, 660, and 670 to the values of the x and y coordinate fields
from
the subzone definition message 500. Block 402 may direct the analyzer
processor 100 to set the floor reference identifier field 553 to a value of an
identifier stored in the location 142 of the storage memory 104 in association
with
the plan retrieved from the location 142 and displayed by the GUI 450 shown in
Figures 8 and 9.
l+ = ,t^...".= -
CA 2959365 2017-02-28
-26-
In some embodiments, block 402 of the flowchart 400 shown in Figure 7 may
direct the analyzer processor 100 shown in Figure 3 to include in the subzone
record 580 shown in Figure 12, the linked zone name field 583 for storing an
identifier of a zone linked to the subzone. Block 402 may direct the analyzer
processor 100 to set the linked zone name field 583 to the zone name from the
zone name field 552. In some embodiments, block 402 may direct the analyzer
processor 100 to include in the subzone record 580, the floor reference
identifier
field 585 and to set the value of this field to a floor reference identifier
associated
with the subzone record 580. Block 402 may direct the analyzer processor 100
to set the floor reference identifier field 585 generally as described above
with
respect to the floor reference identifier field 553 of the zone record 550
shown in
Figure 11.
Referring to Figure 7, block 402 may direct the analyzer processor 100 shown
in
Figure 3 to store the zone record 550, subzone record 580, and point records
640, 650, 660, and 670 as zone information in the location 144 of the storage
memory 104. In some embodiments, storing the zone information in linked zone
records, subzone records, and point records may facilitate easier creating,
editing, and removing of subzones and zones included in the zone information.
Referring back to Figure 7, block 404 directs the analyzer processor 100 shown
in Figure 3 to receive signals representing a usage type associated with the
zone. In various embodiments, a usage type may represent how the zone may
be used by building occupants. As discussed below, the usage type for a zone
may be used by the occupancy information analyzer 14 shown in Figure 3 to
determine the count of occupants for the zone, since, in some embodiments, a
usage type may be indicative of how many occupants can be expected per
occupant-associated location detected within the zone. Block 404 may direct
the
analyzer processor 100 to produce signals for causing the GUI 450 shown in
CA 2959365 2017-02-28
-27-
Figures 8 and 9 to include a usage type field 462 and the user may use the
pointing device and keyboard of the user interface system 130 to produce
signals
representing a usage type entered into the usage type field 462. In some
embodiments, the usage type field 462 of the GUI 450 may include a drop-down
menu providing a number of usage types for the user to select from. For
example, in some embodiments, the usage type may include usage types that
indicate the zone is to be used as an open office, a lecture room, meeting
rooms,
conferencing areas, atrium spaces, flex zones, and/or another usage type that
may be used to help to determine the count of occupants for the zone based on
a
number of occupant-associated locations found within the zone.
For example, in some embodiments, the user may enter a usage type of "Lecture
room" in the usage type field 462 of the GUI 450 shown in Figures 8 and 9 and
the user interface system 130 may be configured to send signals representing a
usage type definition message to the occupancy information analyzer 14. An
exemplary usage type definition message 680 is shown in Figure 14 and includes
a zone name field 682 and a usage type field 684.
Block 404 of the flowchart 400 shown in Figure 7 may direct the analyzer
processor 100 shown in Figure 3 to receive signals representing the usage type
definition message 680 shown in Figure 14 via the interface 124 of the I/O
interface 112. Block 404 may direct the analyzer processor 100 to update the
zone record 550 stored in the location 144 of the storage memory 104 such that
the zone record 550 includes a usage type field 556, as shown in Figure 15,
set
to the value of the usage type field 684 of the usage type definition message
680.
Referring back to Figure 7, block 406 then directs the analyzer processor 100
shown in Figure 3 to receive signals representing a subsystem identifier
associated with the zone. In some embodiments, block 406 may direct the
analyzer processor 100 to produce signals for causing a GUI 700 requesting one
-= I . =4^..
CA 2959365 2017-02-28
-28-
or more building management subsystem identifiers to associate with the zones,
as shown in Figure 16, to be displayed by the display of the user interface
system 130. Referring to Figure 16, the GUI 700 includes a subsystem
identifier
field 710 prompting the user to interact with the user input devices of the
user
interface system 130 to produce signals for entering in the subsystem
identifier
field 710 a subsystem identifier identifying a subsystem of the building
management system which is associated with the zone.
As discussed above, in some embodiments a particular HVAC unit may provide
environmental controls for the zone and a user may provide an identifier for
identifying the HVAC unit in the subsystem identifier field 710. In some
embodiments, where the occupancy information analyzer 14 will be
communicating through the gateway 18 shown in Figure 3, the subsystem
identifier requested and received at block 406 may be an identifier that is
recognized by the gateway 18. For example, in some embodiments, the gateway
18 may be configured such that a first HVAC unit of the environmental
management system is identified by the building management system 16 in
communication with the gateway 18 using a numeric identifier of "101". In such
embodiments, if the user wishes to associate a zone with the first HVAC unit,
the
user may consult information associated with the gateway 18 and input a
subsystem identifier of "101" in the subsystem identifier field 710 of the GUI
700
shown in Figure 16.
When the user provides a value in the subsystem identifier field 710, the user
interface system 130 may generate a subsystem identifier message and transmit
signals representing the subsystem identifier message to the occupancy
information analyzer 14. An exemplary subsystem identifier message 740 is
shown in Figure 17 and includes a zone name field 742 and a subsystem
identifier field 744.
- = = ¨ = == - = ¨,,,oprrne==.====.=.=
- -
CA 2959365 2017-02-28
-29-
Block 406 may direct the analyzer processor 100 to receive the signals
representing the subsystem identifier message 740 via the interface 124 of the
I/O interface 112 and to store a representation of the information included in
the
message in memory. In some embodiments, block 406 may direct the analyzer
processor 100 to update the zone record 550 stored in the location 144 of the
storage memory 104, as shown in Figure 18, to include a subsystem identifier
field 558 set to the value of the subsystem identifier field 744 of the
subsystem
identifier message 740.
Referring back to Figure 7, in various embodiments, the user may provide or
define more than one shape or subzone defining the zone. For example, as
shown in Figure 19, the user may use the pointing device of the user interface
system 130 to define on the GUI 450, a second subzone 470 of the zone having
the name "Zone X". Accordingly, the user interface system 130 may generate
and transmit a subzone definition message 780 as shown in Figure 20 to the
occupancy information analyzer 14, and block 402 of the flowchart 400 shown in
Figure 7 may direct the analyzer processor 100 to act generally as described
above and to receive signals representing the subzone definition message 780
= via the interface 124 of the I/O interface 112.
Referring back to Figure 7, block 402 may direct the analyzer processor 100 to
store information representing the subzone definition message 780 in memory.
In some embodiments, block 402 may direct the analyzer processor 100 to
generate a subzone record 800 as shown in Figure 21 and point records 820,
822, 824, and 826 shown in Figure 22 and to update the zone record 550 to
include a second linked subzone identifier field 555 as shown in Figure 23 to
link
the zone record 550 with the subzone record 800.
In various embodiments, the subzones 460 and 470 shown in Figure 19 may
together define an area of the building which is considered to be the zone
CA 2959365 2017-02-28
-30-
identified by the zone name, "Zone X". In some embodiments, subzones may
overlap as shown in Figure 19 wherein the subzones 460 and 470 overlap. In
some embodiments, allowing overlapping subzones may facilitate users'
abilities
to define complex shaped zones using simple subzone shapes.
Referring to Figure 7, in various embodiments, each of the blocks of code in
the
flowchart 400 shown in Figure 7 may direct the analyzer processor 100 to
receive
information for defining a zone or to be associated with a zone. In various
embodiments, each of the blocks of code of the flowchart 400 may be executed
more than once, in any order, and/or concurrently with one another. For
example, when a user defines multiple subzones, block 402 may be executed
more than once. For example, in some embodiments, a user may concurrently
provide usage type information and subzone definition information and so
blocks
402 and 404 may be executed concurrently. In some embodiments, blocks 404
and/or 406 may be omitted, when such information is not to be used by the =
occupancy information analyzer 14, for example.
In some embodiments, execution of block 204 of the flowchart 200 shown in
Figure 4 may involve executing the flowchart 400 shown in Figure 7 or blocks
of
code generally similar to the blocks of code included in the flowchart 400
multiple
times, at least once for each zone. For example, in some embodiments, the
flowchart 400 may be executed to receive information defining a subzone which
defines a zone having a zone name of "Zone Y", as shown at 472 in Figure 24.
In such embodiments, blocks 402, 404, and 406 or blocks generally similar to
blocks 402, 404, and 406 may be executed to direct the analyzer processor 100
to receive signals representing zone information and the blocks may direct the
analyzer processor 100 to store a zone record 840 as shown in Figure 25 along
with a subzone record, and four point records in the location 144 of the
storage
memory 104.
CA 2959365 2017-02-28
-31-
Referring back to Figure 4, after blocks 202 and 204 have been executed, there
may be stored and accessible from memory, occupant-associated location
information and zone information. In various embodiments, blocks 202 and 204
may be executed more than once, in any order, and/or concurrently with one
another.
Referring to Figure 4, after blocks 202 and 204 have been executed, the
analyzer
processor 100 may be directed to proceed to block 206 which directs the
analyzer processor 100 to determine a count of occupants within each of the
one
or more zones. In various embodiments, block 206 may direct the analyzer
processor 100 to, for each zone, determine an expected count of occupants
within the zone as a function of a count of occupant-associated locations
within
the zone.
Referring to Figure 4, block 206 may direct the analyzer processor 100 shown
in
Figure 3 to compare the occupant-associated location information stored in the
location 140 of the storage memory 104 with the zone information stored in the
location 144 of the storage memory 104 to determine a respective count of
occupants for each of the zones. In some embodiments, the counts of occupants
may represent a number of occupants which are expected to be in each of the
zones. In some embodiments, each of the counts of occupants may be a
representation of an expected count which may be, for example, a decimal
number and not an actual count of occupants.
Referring to Figure 26, there is shown at 900 a flowchart representing blocks
of
codes which may be included in the block 206 of the flowchart 200 shown in
Figure 4, in accordance with various embodiments.
The flowchart 900 begins with block 902 which directs the analyzer processor
100 shown in Figure 3 to determine a count of occupant-associated locations
CA 2959365 2017-02-28
-32-
within each of the one or more zones. In some embodiments, block 902 may
direct the analyzer processor 100 to, for each occupant-associated location of
the plurality of occupant-associated locations, compare the occupant-
associated
location to one or more of the plurality of subzones to find a corresponding
subzone within which the occupant-associated location is located and, when the
corresponding subzone is found, stop comparing for the occupant-associated
location and increment the count of occupant-associated locations that are
within
the zone that is associated with the corresponding subzone.
Referring to Figure 27, there is shown at 940 a flowchart representing blocks
of
codes which may be included in the block 902 of the flowchart 900 shown in
Figure 26, in accordance with various embodiments. The blocks of code included
in the flowchart 940 may direct the analyzer processor 100 to determine a
count
of occupant-associated locations for zones represented by zone records stored
in the location 144 of the storage memory 104.
Referring to Figure 27, the flowchart 940 begins with block 942 which directs
the
analyzer processor 100 shown in Figure 3 to consider a first occupant-
associated
location of the plurality of occupant-associated locations stored in memory
and a
first subzone of a plurality of subzones stored in memory and to determine
whether the occupant-associated location is within the subzone.
In one embodiment, block 942 may direct the analyzer processor 100 to read the
device location record 340 shown in Figure 6 from the location 140 of the
storage
memory 104 and to determine whether the location represented by the device
location record 340 is within the subzone represented by the subzone record
580. Block 942 may direct the analyzer processor 100 to determine whether the
location represented by values stored in the x-coordinate field 346 and y-
coordinate field 348 of the device location record is within the shape or
subzone
having corners at locations represented by the values stored in respective x
and
"
CA 2959365 2017-02-28
-33-
y-coordinate fields of the point records 640, 650, 660, and 670 shown in
Figure
13. In some embodiments, block 942 may direct the analyzer processor 100 to
use methods for solving a point-in-polygon problem (see for example,
https://en.wikipedia.orgiwiki/Point_in_polygon) to determine whether the
location
is within the subzone. In some embodiments, for example, block 942 may direct
the analyzer processor 100 to use a ray casting algorithm to determine whether
the location is within the subzone.
Referring to Figure 27, if the location represented by the device location
record is
not within the subzone, the analyzer processor 100 is directed to proceed to
block 944 and consider a different subzone before returning to block 942 to
determine whether the occupant-associated location is within that new
different
subzone. In some embodiments, the subzone records may be included in a list
and block 944 may direct the analyzer processor 100 to consider the next
subzone record in the list.
If at block 942, the analyzer processor 100 determines that the location
represented by the device location record is within the subzone, the analyzer
processor 100 is directed to proceed to block 946. Accordingly, in various
embodiments, execution of blocks 942 and 944 may act to direct the analyzer
processor 100 to compare the occupant-associated location to one or more
subzones, to find a corresponding subzone within which the occupant-associated
location is located. In various embodiments, when the corresponding subzone is
found, block 942 directs the analyzer processor 100 to stop executing blocks
942
and 944 with respect to the subject occupant-associated location and so acts
to
stop the comparing for the occupant-associated location.
Block 946 directs the analyzer processor 100 to increment the count for the
zone
associated with the subject subzone. In some embodiments, block 946 may
direct the analyzer processor 100 to read a linked zone name field of the
, -
CA 2959365 2017-02-28
-34-
subzone record considered at block 942 to determine a zone name for the zone
linked to the subzone record. Block 946 may direct the analyzer processor 100
to look up in the location 144 of the storage memory 104 a zone record which
has the corresponding zone name and to update the zone record to include an
occupant-associated location count field set to 1 if the zone record has no
count
field or, if the zone record includes an occupant-associated location count
field,
to increment the value stored in the field.
For example, in some embodiments, where at block 942 of the flowchart 940
shown in Figure 27, the analyzer processor 100 shown in Figure 3 determined
that the location represented by the device location record 340 was within the
subzone represented by the subzone record 580 shown in Figure 12, block 946
may direct the analyzer processor 100 to find the zone record 550 shown in
Figure 23 stored in the location 144 of the storage memory 104 and to update
the
zone record 550 as shown in Figure 28, to include an occupant-associated
location count field 560, initialized to 1. For subsequent executions of block
946
with respect to a subzone linked to Zone X, the analyzer processor 100 may be
directed to increment the count stored in the count field 560.
Referring to Figure 27, the flowchart 940 continues at block 950, which
directs
the analyzer processor 100 to consider a next occupant-associated location
before returning to block 942 to determine whether that next occupant-
associated
location is within a subzone. In some embodiments, block 950 may direct the
analyzer processor 100 to begin at the start of a list of subzones again and
so in
some embodiments, block 950 may direct the analyzer processor 100 to consider
a different subzone.
In various embodiments, the analyzer processor 100 may be directed to continue
executing the flowchart 940 until all occupant associated locations have been
considered, at which point, execution of the flowchart 940 may end.
CA 2959365 2017-02-28
-35-
In various embodiments, stopping the execution of blocks 942 and 944 and thus
stopping the comparing of the occupant-associated location to subzones as soon
as a corresponding subzone is found, without looking at any further subzones
and without again considering the occupant-associated location may facilitate
efficient and quick counting of how many occupant-associated locations are
within each zone while avoiding double counting of occupant-associated
locations when subzones overlap, even if one or more of the occupant-
associated locations are within more than one overlapping subzone since
locations may be counted only once and not considered again with respect to a
different, possibly overlapping subzone.
In some embodiments, block 902 may include a block of codes for directing the
analyzer processor 100 to consider the subzones in a particular order before
executing block 942 of the flowchart 940 shown in Figure 27 for a particular
occupant-associated location. In some embodiments, block 902 may include a
block of codes for directing the analyzer processor 100 to consider only a
subset
of subzones when executing block 942 of the flowchart 940 shown in Figure 27
for a particular occupant-associated location.
For example, in various embodiments, a block of codes included in the block
902
may direct the analyzer processor 100 to read from each of the subzone records
a point record associated with the subzone which has the smallest x-coordinate
and smallest y-coordinate location of the point records associated with the
subzone. In some embodiments, this may be a top left vertex of the subzone,
for
example. This may be considered herein for ease of reference as a "point V'
associated with the subzone record.
Block 902 of the flowchart 900 shown in Figure 26 may direct the analyzer
processor 100 shown in Figure 3 to sort the subzone records into a list such
that
CA 2959365 2017-02-28
-36-
they are ordered in the list by the x-coordinate value of the point V of each
subzone record. Block 902 may direct the analyzer processor 100 perform a
binary search, using the x-coordinate of the point Vs as a reference, to find
an x-
border subzone record that is the first subzone record that has an x-
coordinate of
its point V that is larger than the x-coordinate of the occupant-associated
location
being considered.
It may be known that none of the subzone records that are listed after the x-
border subzone record can represent a subzone within which the subject
occupant-associated location is located. Accordingly, in some embodiments,
block 902 may direct the analyzer processor 100 to consider only the subzones
records that are ordered in the list before the x-border subzone record when
executing block 942 with respect to the occupant-associated location. In some
embodiments, block 902 may direct the analyzer processor 100 to update a list
of
subzone records to remove from the list, the x-border subzone record and all
of
the subzone records that are listed after the x-border subzone record.
Block 902 may direct the analyzer processor 100 to sort the remaining subzone
records in the list such that they are ordered by the y-coordinate value of
the
point V of each subzone record. Block 902 may direct the analyzer processor
100 perform a binary search, using the y-coordinate of the point Vs as a
reference, to find a y-border subzone record, which is the first subzone
record
that has a y-coordinate of an associated point V that is larger than the y-
coordinate of the occupant-associated location being considered. In some
embodiments, it may be known that none of the subzones record that are listed
after the y-border subzone record can represent a subzone that contains the
occupant-associated location being considered.
In some embodiments, block 902 may direct the analyzer processor 100 to
consider only the subzone records that are ordered in the list before the y-
border
CA 2959365 2017-02-28
-37-
subzone record when executing block 942 with respect to the occupant-
associated location. In some embodiments, block 902 may direct the analyzer
processor 100 to update the list to remove from the list, the y-border subzone
record and all of the subzone records that are listed after the y-border
subzone
record.
In various embodiments, after the list of subzone records to consider has been
generated and, in some embodiments, amended to include only a subset of the
subzone records, for example, as described above, blocks 942 and 944 of the
flowchart 940 may direct the analyzer processor 100 to proceed through the
list
of subzone records and to consider for the occupant-associated location only
the
subzone records included in the list.
Referring to Figure 26, as discussed above, block 902 of the flowchart 900 may
direct the analyzer processor 100 to execute the flowchart 940 to determine a
count of occupant-associated locations within each zone. Accordingly, once
block 902 has been executed, the zone record 550 and the zone record 840
stored in the location 144 of the storage memory 104 shown in Figure 3 may be
updated to each include an occupant-associated location count field with an
updated count as shown in Figures 29 and 30.
In some embodiments, the counts determined at block 902 of occupant-
associated locations within the zone may not accurately represent an expected
number of occupants within the zone. For example, in some embodiments, the
occupant-associated locations may be device locations, which represent
locations of devices within the zone, and an expected number of occupants in
the
zone may be a function of but not equal to the number of devices detected
within
the zone. Accordingly, referring to Figure 26, in some embodiments, the
flowchart 900 may continue at block 906, which directs the analyzer processor
100 to determine an occupant count for each zone as a function of the count of
_
CA 2959365 2017-02-28
-38-
occupant-associated locations.
In some embodiments, an expected number of occupants in the zone may be
proportional to the number of devices detected within the zone. Accordingly,
in
some embodiments, block 906 may direct the analyzer processor 100 to scale
the count of occupant-associated locations by a correction factor, the
correction
factor representing expected occupants per occupant-associated location.
For example, in some embodiments, for each device location determined to be in
the zone, it may be expected that there are between about 0.7 and 1.3
occupants in the zone and block 906 may direct the analyzer processor 100 to
scale the counts determined at block 902 by a correction factor between 0.7
and
1.3. For example, in some embodiments, block 906 may direct the analyzer
processor 100 to scale the counts by a correction factor of about of 0.9.
In some embodiments, the counts determined at block 904 of occupant-
associated locations within the zone may accurately represent an expected
number of occupants within the zone and so block 906 may be omitted or a
correction factor of 1.0 may be used.
In some embodiments, the value to be used as the correction factor may be
dependent on the zone. In some embodiments, the value to be used as the
correction factor may be dependent on a usage type associated with the zone.
For example, in some embodiments, it may be known from experimental data
that a zone that is used as an open office can be expected to have between
about 0.9 and 1.3 occupants per detected device location within the zone. In
some embodiments, a zone that is used for an open office can be expected to
have about 1.1 occupants per detected device location within the zone.
In contrast, in some embodiments, it may be known from experimental data that
of.. ___ It Pt,. ARIA=44A=ONNW4.. t=WPoiffir.-,01.-.- = = == = =
- 1a-4160.1017AV- 4NieriMilega =5=======4 = *W. =====WWIAN,
CA 2959365 2017-02-28
-39-
a zone that is used as a lecture room can be expected to have between about
0.7 and 1.1 occupants per detected device location within the zone. In
particular,
in some embodiments, a zone that is used as a lecture room can be expected to
have about 0.9 occupants per detected device location within the zone.
Accordingly, in some embodiments, block 906 of the flowchart 900 shown in
Figure 26 may direct the analyzer processor 100 shown in Figure 3 to determine
the correction factors to be applied to the occupant-associated location
counts
based on a usage type associated with each zone. In some embodiments, block
906 may direct the analyzer processor 100 to, for each zone, read a usage type
field included in the zone record representing the zone to determine the usage
type and to read a correction factor table from memory to determine what value
to set the correction factor to, based on the usage type. An exemplary
correction
factor table 1000 is shown in Figure 31 and includes a usage type column 1002
for storing various usage types and a correction factor column 1004 for
storing
correction factors, each of the correction factors associated with one of the
usage
types. The correction factor table 1000 may have been previously provided and
stored in the location 146 of the storage memory 104 for example.
In some embodiments, block 906 may direct the analyzer processor 100 to read
the usage type field 556 of the zone record 550 as shown in Figure 29 to
determine that the usage type of the zone represented by the zone record 550
is
"Lecture room". Block 906 may direct the analyzer processor 100 to retrieve
the
correction factor table 1000 shown in Figure 31 from the location 146 of the
storage memory 104 and to look up the correction factor associated with the
usage type of "Lecture room". Block 906 may direct the analyzer processor 100
to scale the occupant-associated location count for the zone, as determined
previously at block 902 by the determined correction factor. For example,
block
906 may direct the analyzer processor 100 to scale the count stored in the
occupation-associated location count field 560 of the zone record 550 shown in
, ..........
CA 2959365 2017-02-28
-40-
Figure 29 by a correction factor of 0.9 and to update the zone record 550 to
include an occupant count field 562 including the scaled value. Thus, in
various
embodiments, block 906 may direct the analyzer processor 100 to update the
zone record 550 to include an occupant count field 562 set to 7.2 as shown in
Figure 32.
In some embodiments, block 906 may also direct the analyzer processor 100 to
update the zone record 550 to include a time counted field 564 and to set the
time counted field to a present system time.
Block 906 may direct the analyzer processor 100 to scale an occupant-
associated location count for each zone, to determine respective occupant
counts and to store respective representations of the occupants counts in
occupant count fields for each zone record.
In some embodiments, block 906 of the flowchart 900 shown in Figure 26 may
direct the analyzer processor 100 shown in Figure 3 to apply functions other
than
or in addition to scaling to the count of occupant-associated locations to
determine a representation of the expected occupant count. For example, in
some embodiments, block 906 may direct the analyzer processor 100 to
determine a representation of an expected count of occupants as equal to C*(x
¨
A), where C is a correction factor, A is a constant, and x is the count of
occupant-
associated locations for the zone as determined at block 902. In various
embodiments, block 906 may direct the analyzer processor 100 to set the
occupant count fields of the zone records to the representation of the
expected
count of occupants.
In some embodiments, the values for A and/or C may be provided by an
administrator. In some embodiments, blocks of code included in the block 160
of
the program memory 102 shown in Figure 3 may direct the analyzer processor
____________________________ ¨ = A 1Ø2.401=10101.1.,AM.
3 !, .-Atse.
CA 2959365 2017-02-28
-41-
100 to set the values for A and C. For example, the blocks may direct the
analyzer processor 100 to determine a minimum occupant-associated location
count for a zone over a number of days and to set the value of A to that
count. In
some embodiments, the blocks may direct the analyzer processor 100 to
determine the minimum occupant-associated location count for the past week,
month, or year, for example. In some embodiments, this may provide a more
accurate count of occupants based on locations, as it may help the system 10
ignore locations which are always in the zone, such as device locations for
PC's
or workstations, for example, which never leave the zone.
In some embodiments, blocks of code included in the block 160 of the program
memory 102 shown in Figure 3 may direct the analyzer processor 100 to set the
values for C and A such that the representation of an expected count of
occupants, C*(x ¨ A), is a decimal number between 0 and 1. For example, in
some embodiments, the blocks may direct the analyzer processor 100 to set the
value for A as the minimum occupant-associated location count determined as
described above and the blocks may set the value for C as equal to 1/(P-A)
where P is a peak occupant-associated location count for a previous number of
days. In various embodiments, assuming that the count of occupant-associated
locations does not exceed the peak occupant-associated location count, the
representation of the expected count may thus be a decimal number between 0
and 1. Setting the representation of the occupant count in the above described
way such that the representation is a decimal number between 0 and 1 may be
considered as normalizing the representation of the occupant count.
In various embodiments, normalizing a representation of the occupant count as
described above, for example, may enable long term viability of data over
time.
For example, in some embodiments, if the ratio of devices to person changes
over time, due to a proliferation of devices, for example, the normalization
may
keep the data bounded for command thresholds set in the building management
CA 2959365 2017-02-28
-42-
system 16.
Once block 906 of the flowchart 900 shown in Figure 226 has been executed, the
values stored in the count fields of each of the zone records may act as
representations of counts of occupants expected to be within each of the one
or
more zones and thus execution of block 206 of the flowchart 200 shown in
Figure
4 may be complete. Accordingly, referring now to Figure 4, the analyzer
processor 100 may then be directed to block 208, which directs the analyzer
processor 100 to produce signals representing the one or more counts for
causing the counts of occupants to be transmitted to the building management
system 16.
In some embodiments, the building management system 16 may require specific
inputs and/or communication protocols that the occupancy information analyzer
= 14 is not configured to provide and so the occupancy information analyzer
14
may be configured to transmit the counts of occupants to the gateway 18 shown
in Figure 2 to cause the gateway 18 to transmit representations of the counts
to
the building management system 16.
Accordingly, in some embodiments block 208 may direct the analyzer processor
100 to retrieve for each of the zone records stored in memory, a count from
the
occupant count field of the zone record and to transmit the counts to the
gateway
18. In some embodiments, block 208 may direct the analyzer processor 100 to
transmit each of the counts in association with a subsystem identifier
identifying a
subsystem of the building management system that is associated with the zone.
In some embodiments, block 208 may direct the analyzer processor 100 to
transmit an occupancy count message to the gateway 18. An exemplary
occupancy count message in accordance with an embodiment is shown at 1050
in Figure 33. The occupancy count message 1050 includes a first count field
191,k Mit I = .44
CA 2959365 2017-02-28
-43-
1052 for storing a representation of an expected count associated with a first
zone, a first subsystem identifier field 1054 for storing an identifier of a
subsystem associated with the first zone, a second count field 1056 for
storing a
representation of an expected count associated with a second zone, and a
second subsystem identifier field 1058 for storing an identifier of a
subsystem
associated with the second zone. In various embodiments, the occupancy count
message may include additional count fields and associated subsystem
identifier
fields for each of the zones stored in the location 144 of the storage memory
104.
Block 208 of the flowchart 200 shown in Figure 4 may direct the analyzer
processor 100 shown in Figure 3 to set the count fields and associated
subsystem identifier fields to values that correspond to the counts and
subsystem
identifiers included in each zone record stored in the location 144 of the
storage
memory 104. For example, block 208 may direct the analyzer processor to
retrieve the zone record 550 as shown in Figure 32 from the location 144 of
the
storage memory 104 and to set the first count field 1052 to the value from the
occupant count field 562 of the zone record 550 and to set the first subsystem
identifier field 1054 to the value from the subsystem identifier field 558 of
the
zone record 550. Block 208 may similarly direct the analyzer processor 100 to
set other count fields and associated subsystem identifier fields in the
occupancy
count message 1050 in accordance with each of the zone records stored in the
location 144 of the storage memory 104.
Block 208 may direct the analyzer processor 100 to transmit signals
representing
the occupancy count message 1050 to the gateway 18 via the interface 124 of
the I/O interface 112. The gateway 18 may be configured to receive the
occupancy count message 1050 and to transmit a message to the building
management system including representations of the counts and associating
each count with a subsystem of the building management system in accordance
with the subsystem identifiers. For example, in some embodiments, the gateway
CA 2959365 2017-02-28
-44-
18 may communicate with the building management system using a building
management system protocol such as, for example, BACnet and the gateway 18
may transmit a message including the counts wherein representations of the
counts are ordered in the message in such a way that the building management
system can determine which subsystem each of the counts are associated with.
The building management system 16 may control the environmental conditions of
the zones based at least in part on the occupant counts received from the
gateway. In various embodiments, variables may be defined by the building
management system 16 with values equal to occupant counts for zones or sums
of multiple zones. In some embodiments, building systems such as air handling
units may be programmed to change behaviour when variable (occupant count)
values exceed or drop below thresholds that may be set programmatically.
For example, in some embodiments, the building management system 16 may
be configured to use the occupant counts to determine a command-on for
ventilation systems and reduce the build-up of undesirable environmental
gaseous pollutants such as total volatile organic compounds (TVOCs) and/or
CO2. For example, for a zone such as a lecture hall, the building management
system 16 may be configured to facilitate command-on during lecture periods
when the lecture hall has greater than a threshold count of occupants and may
be considered occupied. In some embodiments, this may facilitate controlling
spaces by rules based on occupancy information instead of physical sensing
information, such as passive infrared (PIR) or CO2 detection. Accordingly, in
some embodiments, for example, use of occupancy data may remove a need for
physical sensors in a building.
Displaying occupancy and zones
In some embodiments, the occupancy information analyzer 14 shown in Figure 3
may be configured to produce signals for causing the display of the user
interface
-
CA 2959365 2017-02-28
-45-
system 130 to display representations of the occupant-associated locations and
the zones together. For example, in some embodiments, blocks of code included
in the block 160 of the program memory 102 may direct the analyzer processor
100 to retrieve the device location records, plan data, zone records, subzone
records, and point records from the locations 140, 142, and 144 of the storage
memory 104 and to produce signals for causing the display of the user
interface
system 130 shown in Figure 2 to present the information included in these
records in a display 1100 as shown in Figure 34.
Processing occupancy information
In some embodiments, the occupancy information analyzer 14 may be
configured to perform more general functions than those described above having
regard to the flowchart 200 shown in Figure 4. For example, in some
embodiments, the occupancy information analyzer 14 may be configured to
facilitate occupancy information processing for a building. In such
embodiments
the block 160 of the program memory 102 shown in Figure 3 may include blocks
of code as shown in the flowchart 1200 in Figure 35. The flowchart 1200
includes blocks 1202, 1204, and 1206 which may be generally similar to the
blocks 202, 204, and 206 described above. However, the flowchart 1200
includes a block 208 which directs the analyzer processor 100 to produce
signals
representing the one or more counts of occupants within the zone for causing
the
one or more counts of occupants to be processed by an occupancy information
processing system. In some embodiments, an occupancy processing system
may be in communication with the occupancy information analyzer 14 via the I/O
interface and block 208 may direct the analyzer processor 100 to produce
signals
representing the counts for causing the counts to be transmitted to the
occupancy processing system for processing. In some embodiments, the
representations of expected counts of occupants may be used by the occupancy
processing system for various applications, such as, for example, for space
utilization analytics, risk management, fire evacuation and/or security
CA 2959365 2017-02-28
-46-
applications.
Location detection
In some embodiments, the system 10 shown in Figure 1 may be implemented
generally similarly to the embodiment shown in Figure 2, but using a different
location detecting system from that described above having regard to the
location
detecting system 12 shown in Figure 2. For example, in some embodiments, the
location detecting system 12 may be configured to detect occupant-associated
locations or locations of persons in or around a building using, for example,
any
or all of the following:
1. One or more standalone passive infrared sensors ("PIR"), which may be
for example wall mounted.
2. One or more detectors for detecting passing BluetoothTM and/or INi-Fi
enabled phones.
3. Video analytics using camera infrastructure.
4. Simple entry and exit counting systems.
5. Video, thermal, or beam interrupt counting methods for people counting
using entry counts.
6. Thermal imaging.
Correction factors
In some embodiments, a user may interact with the user input devices of the
user
interface system 130 shown in Figure 2 to enter a correction factor instead of
a
usage type to be associated with a zone. For example, in some embodiments,
the user may use the user input devices to enter a correction factor into the
usage type field 462 shown in Figure 8 or into a correction factor field
displayed
by the at least one display to the user and the user interface system 130 may
generate and send a correction factor message to the occupancy information
analyzer 14. An exemplary correction factor message is shown at 1240 in Figure
36 and includes a zone name field 1242 and a correction factor field 1244.
CA 2959365 2017-02-28
-47-
Accordingly, in various embodiments, block 204 of the flowchart 200 shown in
Figure 4 may include a block of codes which directs the analyzer processor 100
to receive signals representing the correction factor message from the user
interface system 130 via the interface 124 of the I/O interface 112. Block 204
may direct the analyzer processor 100 to update the zone record 550 to include
a
correction factor field 566, as shown in Figure 37, set to the correction
factor
taken from the correction factor field 1244 of the correction factor message
1240.
Block 906 of the flowchart 900 shown in Figure 25 may direct the analyzer
processor 100 to scale the count of occupant-associated locations determined
at
block 904 by the correction factor taken from the correction factor field 566
of the
zone record 550 shown in Figure 37.
Continued execution
In various embodiments, once the zones and subzones have been defined and
the zone records, subzone records, and point records have been stored in the
location 144 of the storage memory 104, the flowchart 200 shown in Figure 4
may continue to be executed. In such embodiments, block 204 may direct the
analyzer processor 100 to receive the signals representing the one or more
zones from memory by retrieving the zone records, subzone records, and point
records from the location 144 of the storage memory.
In various embodiments, the continued execution of the flowchart 200 shown in
Figure 4 may facilitate near real time updating of occupant counts transmitted
to
the building management system and/or near real time updating of occupancy
information for display on the display 1100 shown in Figure 34. In some
embodiments, with each execution of the flowchart 200, each of the zone
records
may be updated to include a further count field and associated time counted
field.
In some embodiments, this may facilitate, by reviewing the count fields and
associated time counted fields for the zones, the keeping of a historical
record of
. .
CA 2959365 2017-02-28
-48-
occupant counts for each zone through time.
Various embodiments
In some embodiments, separation of the functionality of the system 10 into
different computers or systems may facilitate control of and access to
information
within the system. This may be particularly desirable in the system 10 where
personal and/or confidential information may be managed. However, in some
embodiments, the functionality of some or all of the location detecting system
12,
the occupancy information analyzer 14, the gateway 18, the user interface
system 130 and/or the building management system 16 may be provided by an
integrated system or computer having a single processor, for example. By way
of example only, in various embodiments, aspects of the user interface system
130 may be integrated with the occupancy information analyzer 14, aspects of
the location detecting system 12 may be integrated with the occupancy
information analyzer 14, aspects of the gateway 18 may be incorporated in the
occupancy information analyzer 14, and/or aspects of the occupancy information
analyzer 14, the gateway 18, and the building management system 16 may be
integrated together as a single system or computer. In such embodiments, some
of the blocks of code may be altered and/or omitted to facilitate the
execution of
the functionality of the processes described herein by one or more integrated
system or server computer. In some embodiments, a system including such
integrated devices may provide advantages such as, for example, reduction in
implementation and/or operating costs.
While specific embodiments of the invention disclosed herein are, for
exemplary
purposes, directed to embodiments wherein the system 10 shown in Figure 2
processes occupancy information including exemplary zones and subzones, in
various embodiments, the system 10 may be configured to process occupancy
information with respect to more numerous zones than those disclosed herein,
each including numerous subzones. For example, in various embodiments, the
______________________________________________________ l=
4.4sPie1101=01~4154.44Vor
CA 2959365 2017-02-28
-49-
system 10 may be configured to process occupancy information for more than
500 zones, each including more than 10 subzones, and for 10s of thousands of
occupant-associated locations. Generally, in various embodiments, the system
described herein may be scaled to process occupancy information for any
number of zones, subzones, and/or occupant-associated locations. In such
embodiments, records, messages, and fields as described herein may be added
and/or modified as necessary.
While specific embodiments of the invention have been described and
illustrated,
such embodiments should be considered illustrative of the invention only and
not
as limiting the invention as construed in accordance with the accompanying
claims.