Patent Publication Number: US-9900174-B2

Title: Multi-user geofencing for building automation

Description:
TECHNICAL FIELD 
     The disclosure relates generally to building automation, and more particularly to building automation systems with geofencing capabilities. 
     BACKGROUND 
     Building automation systems are often used to control safety, security and/or comfort levels within a building or other structure. Illustrative but non-limiting examples of building automation systems include Heating, Ventilation and/or Air Conditioning (HVAC) systems, security systems, lighting systems, fire suppression systems and/or the like. In some cases, a building automation system may enter an unoccupied mode when the building is expected to be unoccupied and an occupied mode when the building is expected to be occupied. When the building automation system includes an HVAC system, the building automation system may set a temperature setpoint of the HVAC system to a more energy efficient setting when in an unoccupied mode and a more comfortable setting when in an occupied mode. When the building automation system includes a security system, the building automation system may set the security system to an away state when in an unoccupied mode and an unlocked or home state when in an occupied mode. In some cases, geofencing may be used to help determine if the building is occupied or unoccupied, and the building automation system may operate accordingly. 
     SUMMARY 
     This disclosure relates generally to multi-user geofencing capabilities of a building automation system. An example of the disclosure may be found in a building automation server that includes a memory, a communication interface and a controller that is coupled to the memory and the communication interface. In some cases, the memory may store a database that includes a plurality of user accounts. Each user account may correspond to a corresponding building, and may specify a building location for the corresponding building, a geofence defined relative to the building location, and one or more group member ID&#39;s. Each of the group member ID&#39;s may be associated with a corresponding mobile device that has location services, and each user account may identify a geofence status for each of the one or more group member ID&#39;s. The geofence status may indicate whether the corresponding mobile device for each of the one or more group member ID is within the geofence associated with the user account or outside of the geofence. 
     In some cases, the controller of the building automation server may be configured to receive, via the communication interface, geofence crossing notifications issued by the mobile devices that correspond to the one or more group member ID&#39;s as those mobile devices cross the geofence that is associated with the corresponding user account. In some cases, the location service of a mobile device initiates communication between the mobile device and the building automation server when the location service indicates that the mobile device has crossed the geofence. In response, the controller of the building automation server may update the geofence status for each of one or more group member ID&#39;s in the memory using the geofence crossing notifications. The controller may be configured to recognize when the geofence status of all of the one or more group member ID&#39;s of a user account are outside of the corresponding geofence(s), and may interpret this condition as the corresponding building being unoccupied. The controller may further recognize when the geofence status of one or more of the group member ID&#39;s of a user account are inside of the corresponding geofence(s), and may interpret this condition as the corresponding building being occupied or soon to be occupied. 
     In some cases, the controller may notify a building controller of the building associated with the user account that the building has become unoccupied or occupied. The building controller may then control the building accordingly. 
    
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         FIG. 1  is a schematic view of an illustrative building automation system; 
         FIG. 2  is a schematic view of another illustrative building automation system; 
         FIG. 3  is a schematic view of another illustrative building automation system; 
         FIG. 4  is a schematic view of an illustrative building automation server; 
         FIG. 5  is a schematic view of an illustrative database storable within the memory of the illustrative building automation server of  FIG. 4 ; 
         FIG. 6  is a flow diagram showing an illustrative method; 
         FIG. 7  is a flow diagram showing another illustrative method; 
         FIG. 8  is a flow diagram showing another illustrative method; 
         FIG. 9  is a flow diagram showing another illustrative method; and 
         FIG. 10  is a flow diagram showing another illustrative method; 
     
    
    
     While the disclosure is amenable to various modifications and alternative forms, specifics thereof have been shown by way of example in the drawings and will be described in detail. It should be understood, however, that the intention is not to limit aspects of the disclosure to the particular illustrative embodiments described. On the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the disclosure. 
     DESCRIPTION 
     The following description should be read with reference to the drawings wherein like reference numerals indicate like elements. The drawings, which are not necessarily to scale, are not intended to limit the scope of the disclosure. In some of the figures, elements not believed necessary to an understanding of relationships among illustrated components may have been omitted for clarity. 
     All numbers are herein assumed to be modified by the term “about”, unless the content clearly dictates otherwise. The recitation of numerical ranges by endpoints includes all numbers subsumed within that range (e.g., 1 to 5 includes 1, 1.5, 2, 2.75, 3, 3.80, 4, and 5). 
     As used in this specification and the appended claims, the singular forms “a”, “an”, and “the” include the plural referents unless the content clearly dictates otherwise. As used in this specification and the appended claims, the term “or” is generally employed in its sense including “and/or” unless the content clearly dictates otherwise. 
     It is noted that references in the specification to “an embodiment”, “some embodiments”, “other embodiments”, etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is contemplated that the feature, structure, or characteristic may be applied to other embodiments whether or not explicitly described unless clearly stated to the contrary. 
     The present disclosure is directed generally at building automation system. Building automation systems are systems that control one or more operations of a building. Building automation systems can include HVAC systems, security systems, fire suppression systems, energy management systems and/or any other suitable systems. While HVAC systems are used as an example below, it should be recognized that the concepts disclosed herein can be applied to building control systems more generally. 
     In its broadest interpretation, a building automation system includes a controller, computer and/or other processing equipment that is configured to control one or more features, functions, systems or sub-systems of a building. In some cases, devices that can be used by individuals to communicate with the controller, computer and/or other processing equipment. In some cases, a building automation system may include a plurality of components that, in combination, perform or otherwise provide the functionality of the building automation system. A building automation system may be fully contained within a single building, or may include components that are spread between multiple housings and/or across multiple locations. In some embodiments, a building automation system, regardless of the physical location(s) of the components within the building automation system, may control one or more building systems within a single building. In some cases, a building automation system, regardless of the physical location(s) of the components within the building automation system, may control one or more building systems within a plurality of buildings, optionally in accordance with a common operating procedure and/or distinct operating procedures for each building as desired. 
       FIG. 1  is a schematic illustration of an illustrative building automation system  10 . The illustrative building automation system  10  includes a server  12  that may be configured to communicate with a mobile device  14  and with a building controller  16 . It will be appreciated that for simplicity, only a single mobile device  14  is shown, while in many cases the server  12  may be configured to communicate directly or indirectly with any number of mobile devices  14 . Similarly, while a single building controller  16  is illustrated, in many cases the server  12  may be configured to communicate directly or indirectly with any number of building controllers  16 , located in a single building or distributed throughout a plurality of buildings. The server  12  is illustrated as a single, cloud-based server. In some cases, the server  12  may be a single server. In some instances, the server  12  may generically represent two, three or more servers commonly located or spread between two or more physical locations. In some cases, the server  12  handles communication with both the mobile device  14  and the building controller  16 . In some instances, as shown for example in  FIG. 2 , distinct servers may carry out each communications protocol if desired. 
     In some cases, the mobile devices  14  may communicate with the server  12  at least partially through a network such as the Internet, sometimes using a cell phone network, WiFi network other any other suitable network. Likewise, it is contemplated that the building controller  16  may communicate with the server  12  at least partially through a network such as the Internet, sometimes using a cell phone network, WiFi network other any other suitable network. 
       FIG. 2  is a schematic illustration of another illustrative building automation system  20 . The illustrative building automation system  20  includes a first server  22  that may be configured to communicate with a mobile device  14  (or multiple mobile devices  14 ) and a second server  24  that may be configured to communicate with a building controller  16  (or multiple building controllers  16 ). The first server  22  may be configured to receive data from the mobile device  14 , process the data, and send data to the mobile device  14  and/or to the second server  24 . The second server  24  may be configured to receive data from the building controller  16 , process the data, and send data to the building controller  16  and/or to the first server  22 . In some instances, the first server  22  may be configured to permit data from the mobile device  14  to pass directly through to the building controller  16 . In some cases, the second server  24  may be configured to permit data from the building controller  16  to pass directly through to the mobile device  14 . The first server  22  and the second server  24  may be configured to communicate with each other. 
     It will be appreciated that for simplicity, only a single mobile device  14  is shown, while in many cases the first server  22  may be configured to communicate directly or indirectly with any number of mobile devices  14 . Similarly, while a single building controller  16  is illustrated, in many cases the second server  24  may be configured to communicate directly or indirectly with any number of building controllers  16 , located in a single building or distributed throughout a plurality of buildings. 
     The first server  22  is illustrated as a single, cloud-based server. In some cases, the first server  22  may be a single server. In some instances, the first server  22  may generically represent two, three or more servers commonly located or spread between two or more physical locations. The second server  24  is illustrated as a single, cloud-based server. In some cases, the second server  24  may be a single server. In some instances, the second server  24  may generically represent two, three or more servers commonly located or spread between two or more physical locations. In some cases, the first server  22  and the second server  24  may, in combination, be considered as representing or forming a building automation server  26 . 
       FIG. 3  is a schematic illustration of a building automation system  30  in which a building automation server  26  is configured to communicate with a plurality of buildings  32  as well as a plurality of mobile devices  34 . It is contemplated that the building automation server  26  may include a single server or two or more distinct servers at one or several locations. The building automation system  30  may serve any desired number of buildings. As illustrated, the plurality of buildings  32  includes a Building One, labeled as  32 A, a Building Two, labeled as  32 B, and so on through a Building “N”, labeled as  32 N. It will be appreciated that the building automation system  30  may include a large number of buildings, each in communication with a central (or distributed) building automation server  26 . 
     As illustrated, each of the plurality of buildings  32  includes a building controller and one or more pieces of building equipment. The building equipment may, for example, be HVAC equipment, security equipment, lighting equipment, fire suppression equipment, and the like. In particular, the building  32 A includes a building controller  36 A and a building equipment  38 A, the building  32 B includes a building controller  36 B and a building equipment  38 B, and so on through the building  32 N, which includes a building controller  36 N and a building equipment  38 N. It will be appreciated that while each building is illustrated as having a single building controller and a single building equipment controlled by the single building controller, in some cases a building may have multiple related or unrelated building controllers and/or multiple pieces of related or unrelated building equipment. 
     The plurality of mobile devices  34  may be considered as being divided into a set of mobile devices  40 A that can be associated with the building  32 A, a set of mobile devices  40 B that can be associated with the building  32 B, and so on through a set of mobile devices  40 N that can be associated with the building  32 N. As illustrated, the set of mobile devices  40 A includes a first mobile device  42 A, a second mobile device  44 A and a third mobile device  46 A. The set of mobile devices  40 B includes a first mobile device  42 B, a second mobile device  44 B and a third mobile device  46 B and so on through the set of mobile devices  40 N, which includes a first mobile device  42 N, a second mobile device  44 N and a third mobile device  46 N. This is merely illustrative, as any number of mobile devices such as smartphones or tablets, may be associated with a particular building, as desired. Each user or occupant of a building may have one associated mobile device, or may have several associated mobile devices. 
     Associating a mobile device with a building generally involves the individual who uses the particular mobile device. A mobile device can communicate with the building, through the building automation server  26 , to provide instructions to the building controller and/or to receive information from the building controller. In some instances, a mobile phone with location services activated can be used to inform the building controller as to the whereabouts of the user relative to the building, and in some cases how long before they will arrive at the building. In response, the building controller can operate the building equipment in an energy savings manner when all users associated with the building are determined to be away from the building (e.g. the building is unoccupied). For example, if the building controller is an HVAC controller, and is informed that nobody is home or is expected home soon, the HVAC controller can operate the HVAC equipment at a lower temperature setpoint in the winter, or at a higher temperature setpoint in the summer in order to save energy. 
     In some embodiments, there may be a desire to instruct the building controller to operate manually, at least for a period of time. While operating manually, the building controller may operate one or more building systems to maintain a particular temperature set point or schedule, a lighting mode, a security system mode, and the like. While operating manually, the building controller may ignore any geofence events that it is informed of. In some instances, the building automation server may keep track of geofence events that occur during a period of manual operation resulting from an individual triggering a suspend mode, using either the building controller or their mobile device. While geofence events may not be transmitted to the building controller, or may be transmitted to the building controller but ignored by the building controller, the building automation server may still use those triggers to update the status of each assigned user. 
       FIG. 4  is a schematic view of an illustrative building automation server, such as building automation server  26  of  FIG. 3 . In broadest terms, the building automation server  26  may include a memory  50 , a communications interface  52  and a controller  54  that is coupled to the memory  50  and the communications interface  52 . As will be illustrated in greater detail in  FIG. 5 , the memory  50  may be configured to store, for example, a database that includes a plurality of user accounts, wherein each user account includes an associated building location of a building, an associated geofence defined relative to the building location, and one or more group member ID&#39;s. Each of the one or more group member ID&#39;s may be associated with a corresponding mobile device with location services, and each user account may identify a geofence status for each of the one or more group member ID&#39;s. The geofence status may indicate whether the corresponding mobile device for each of the one or more group member ID is within the geofence associated with the user account or outside of the geofence. In some cases, more than one geofence may be provided. In one example, each user may have a different defined geofence. In another example, a building may have a first geofence that is used to detect outbound crossings, and a second geofence that is used to detect inbound crossings. In yet another example, a first geofence or set of geofences may be defined for weekdays, and a second geofence or set of geofences may be defined for weekend days. 
     In the example shown, the controller  54  of the building automation server  26  is configured to receive, via the communications interface  52 , geofence crossing notifications that are issued by the mobile devices that correspond to the one or more group member ID&#39;s as those mobile devices cross the geofence(s) that is/are associated with the corresponding user account. In some cases, the controller  54  may receive the geofence status of each associated mobile device. For example, if a person with a mobile device associated with the building  32 A crosses a geofence associated with the building  32 A, the controller  54  may be configured to receive a geofence crossing notification from that person&#39;s mobile device. In some cases, the controller  54  may be further configured to update the geofence status for each of one or more group member ID&#39;s in the memory using the geofence crossing notifications. 
     In some instances, the controller  54  may be configured to recognize when the geofence status of all of the one or more group member ID&#39;s of a user account are outside of the geofence(s) that is/are associated with the user account, and interprets the building, such as the building  32 A, the building  32 B, and so on, that is associated with the user account as being unoccupied. The controller  54  may also be configured to recognize when the geofence status of at least one of the one or more group member ID&#39;s of the user account is inside of the geofence that is associated with the user account, and interprets the building that is associated with the user account as being occupied or soon be occupied. The controller  54  may be configured to notify the building controller(s) of the building that is associated with the user account that the building has become unoccupied when the controller  54  interprets the building as being unoccupied. The controller  54  may also be configured to notify the building controller that the building has become occupied or will soon to be occupied when the controller  54  interprets the building as being occupied or soon to be occupied. The building controller may receive these notifications and operate accordingly. 
       FIG. 5  is a schematic view of a database  100  that may be stored in the memory  50  of the illustrative building automation server  26 . In some cases, the database  100  may store relevant information for a large number of user accounts. As illustrated, the database  100  includes a User Account A, labeled as  102 A, a User Account B, labeled as  102 B, and so on through a User Account N, labeled as  102 N. It will be appreciated that there may be several user accounts, several tens of user accounts, several hundreds, several thousand, several million or more user accounts stored within the database  100 . For each user account, the database  100  may store location information pertaining to that particular user account. For example, the user account  102 A includes a locations block  104 A that includes building location(s) and geofence location(s) information pertaining to the user account  102 A. Similarly, the user account  102 B includes a locations block  104 B that includes building location(s) and geofence location(s) information pertaining to the user account  102 B, and so on through the user account  102 N, which includes a locations block  104 N including building location(s) and geofence location(s) information pertaining to the user account  102 N. 
     Each user account may also store a number of data entries for each of the group members that are associated with that user account. For example, the user account  102 A may include a block  106 A devoted to the group member ID # 1 , a block  108 A devoted to the group member ID # 2 , and so on through a block  110 A devoted to the group member ID #M. The block  106 A may include any variety of information pertaining to the group member ID # 1 , including but not limited to, mobile device(s) ID(s) for group member ID # 1 , current and/or historical geofence status of group member ID # 1 , current and/or historical activity status of group member ID # 1 , disable/enable status of group member ID # 1 , and/or any other suitable information. Likewise, block  108 A may include any variety of information pertaining to the group member ID # 2 , including but not limited to, mobile device(s) ID(s) for group member ID # 2 , current and/or historical geofence status of group member ID # 2 , current and/or historical activity status of group member ID # 2 , disable/enable status of group member ID # 2 , and/or any other suitable information. Similarly, block  110 A may include any variety of information pertaining to the group member ID #M, including but not limited, mobile device(s) ID(s) for group member ID #M, current and/or historical geofence status of group member ID #M, current and/or historical activity status of group member ID #M, disable/enable status of group member ID #M, and/or any other suitable information. 
     In the example shown, the user account  102 B includes a block  106 B devoted to the group member ID # 1  of ID account  102 B, a block  108 B devoted to the group member ID # 2 , and so on through a block  110 B devoted to the group member ID #M. The block  106 B may include any variety of information pertaining to the group member ID # 1 , including but not limited to, mobile device(s) ID(s) for group member ID # 1 , current and/or historical geofence status of group member ID # 1 , current and/or historical activity status of group member ID # 1 , disable/enable status of group member ID # 1 , and/or any other suitable information. Likewise, block  108 B may include any variety of information pertaining to the group member ID # 2 , including but not limited to, mobile device(s) ID(s) for group member ID # 2 , current and/or historical geofence status of group member ID # 2 , current and/or historical activity status of group member ID # 2 , disable/enable status of group member ID # 2 , and/or any other suitable information. Similarly, block  110 B may include any variety of information pertaining to the group member ID #M, including but not limited, mobile device(s) ID(s) for group member ID #M, current and/or historical geofence status of group member ID #M, current and/or historical activity status of group member ID #M, disable/enable status of group member ID #M, and/or any other suitable information. 
     The user account  102 N includes a block  106 N devoted to the group member ID # 1  of user account  102 N, a block  108 N devoted to the group member ID # 2 , and so on through a block  110 N devoted to the group member ID #M. The block  106 N may include any variety of information pertaining to the group member ID # 1 , including but not limited to, mobile device(s) ID(s) for group member ID # 1 , current and/or historical geofence status of group member ID # 1 , current and/or historical activity status of group member ID # 1 , disable/enable status of group member ID # 1 , and/or any other suitable information. Likewise, block  108 N may include any variety of information pertaining to the group member ID # 2 , including but not limited to, mobile device(s) ID(s) for group member ID # 2 , current and/or historical geofence status of group member ID # 2 , current and/or historical activity status of group member ID # 2 , disable/enable status of group member ID # 2 , and/or any other suitable information. Similarly, block  110 N may include any variety of information pertaining to the group member ID #M, including but not limited, mobile device(s) ID(s) for group member ID #M, current and/or historical geofence status of group member ID #M, current and/or historical activity status of group member ID #M, disable/enable status of group member ID #M, and/or any other suitable information. 
     It will be appreciated that by virtue of the information maintained in the database  100 , the controller  54  may have the ability to keep track of geofencing information for a large number of individuals who are each assigned to one of a potentially large number of different buildings (e.g. different homes). 
     In some embodiments, the controller  54  of the illustrative building automation server  26  may be configured to receive a request from one or more group member ID&#39;s of a user account to assign a disable status to one or more of the group member ID&#39;s of the corresponding user account. If a particular group member ID has a disable status, the controller  54  may be configured to not consider the geofence status of those group member ID&#39;s that have the disabled status when determining whether the corresponding building is occupied or not occupied. For example, if a particular user ID has a disable status, the controller  54  may decide that the building is unoccupied, even if that user ID is indicate as being in the building. In some cases, the controller  54  may be configured to receive a request from a first group member ID to assign a disable status to the first group member ID. In some instances, the controller  54  may be configured to receive a request from a first group member ID of a first user account to assign a disable status to a second group member ID of the first user account. In some cases, an application program running on the mobile device may facilitate a user to change his/her disable status, or the disable status of another group member ID within the same user account. In some cases, one of the group member ID&#39;s may have administrator privileges that permit that group member to add or change information and/or settings associated with the corresponding user account. This can include changing the disable status of the group members of the user account. 
     In some embodiments, the controller  54  may be configured to track an activity status of each of the one or more group member ID&#39;s, wherein the activity status may include an active status and an inactive status. If the activity status of a particular group member ID is active, the controller  54  may be configured to update the geofence status for that group member ID in the memory using geofence crossing notifications issued by the mobile device that corresponds to that group member ID. If the activity status of a group member ID is inactive, the controller  54  may be configured to not update the geofence status for that group member ID in the memory using geofence crossing notifications issued by the mobile device that corresponds to that group member ID. In some cases, the controller  54  may be configured to automatically assign the inactive status to a group member ID if no geofence crossing notification from the mobile device that corresponds to that group member ID is detected over a predetermined length of time. The predetermined length of time may be of any duration, although in some cases the predetermined length of time may be one day, three days, seven days or some other time period. In some instances, the controller  54  may be configured to automatically assign an active status to a group member ID that has an inactive status if a geofence crossing notification issued by the mobile device that corresponds to that group member ID is detected. 
     In some cases, a particular individual may own or use more than one mobile device. In some instances, the controller  54  may be configured to associate more than one mobile device to a group member ID. If more than one mobile device associated with a group member ID has location services activated, the controller  54  may be configured to use the last received geofence crossing notification when identifying the geofence status for that group member ID. In some instances, an individual may have both a smartphone and a tablet. While the tablet may be used for accessing features and functionality of a building controller by running an application on the tablet, the controller  54  may be configured to recognize geofence crossing notifications issued by the smart phone but not recognize geofence crossing notifications issued by the tablet. The controller  54  may be configured to accept set point changes via the smartphone and the tablet. 
     In some instances, an individual may cross a geofence with their mobile device turned off, in airplane mode or otherwise temporarily out of communication with the controller  54 . In other instances, a user may accidently turn off location services, even if the mobile device is still powered. In some cases, if a mobile device that corresponds to a group member ID does not have location services available (e.g. turned off or the mobile device is off or otherwise out of communication) when crossing a geofence associated with the corresponding user account, but the location services of the mobile device subsequently become available later, the controller  54  may be configured to receive a current position of the mobile device relative to the geofence and update the geofence status for that group member ID according to the current position of the mobile device. 
     As eluded to above, the controller  54  may be configured to grant administrator privileges to one or more of the group member ID&#39;s for each of the plurality of user accounts, and wherein the group member ID(s) that has the administrator privileges may have additional rights relative to group member ID(s) that do not have the administrator privileges. While not shown in the database  100  as illustrated in  FIG. 5 , the database  100  may also store information pertaining to whether a particular group member ID has administrator privileges. For example, an individual with administrator privileges may be enabled to make changes to how the building equipment functions, while an individual without administrator privileges may only be enabled to make minor set point changes. In some cases, one or several adults in a building or home may have administrator privileges, while others in the home, such as juvenile children, may not have administrator privileges. 
     In some cases, a new group member may be invited to join a user account. An existing member of a user account (e.g. ADMIN) may send an invitation to one or more individuals to join the user account. This invitation can be delivered in any suitable form, such as by SMS message and/or email. The individual receiving the invitation may need to download an application program to their mobile device and register their mobile device with the system before being accepted as a new group member of the user account. In some cases, the new group member may be asked if they want geo-location services to be enabled on their mobile device. Without allowing their location services to be enabled, the system will assigned a disable status to their group member ID, and will not consider their geo-location when determining whether the corresponding building is occupied or not occupied. In some cases, once a new group member is registered with the user account, the location of the corresponding building, geofence information, as well as other information may be delivered and registered with the location service of the new group member&#39;s mobile device. 
     In some instances, the controller  54  may be configured to grant a USER status to one or more of the group member ID&#39;s and optionally assign a GUEST status to one or more of the group member ID&#39;s, wherein the group member ID(s) that have been assigned the GUEST status have less rights relative to group member ID(s) that have been assigned the USER status or administrator privileges. While not shown in the database  100  as illustrated in  FIG. 5 , the database  100  may also store information pertaining to whether a particular group member ID has USER status or GUEST status. In an illustrative but non-limiting example, individuals who live in a home may be assigned USER status, and thus have particular rights and permissions. Individuals who do not live in the home, but are temporarily in the home, may be granted GUEST status and thus may have reduced rights and permissions, although their presence or absence, relative to a geofence, may be detected and used. For example, temporary house guests may be granted GUEST status. A neighbor watching a vacant house for their neighbor may be granted GUEST status. House cleaners may be granted GUEST status. 
     Mobile devices typically have several different location services available to them. In some cases, a mobile device may use GPS functionality for determining its location. In some cases, a mobile device may triangulate its position using cell signal strength. In some instances, a mobile device may utilize short range communications such as WiFi to triangulate its position. In some embodiments, the controller  54  may generally rely upon location information provided by a less accurate but less power-hungry location service such as cell signal strength. While the building automation server  26  may not necessarily instruct the mobile device as to which method(s) to use for location services, in some cases the building automation server  26  may ask the mobile device for its location, in combination with a desired accuracy level. A low accuracy level request may cause the mobile device to rely on cell signal strength or other lower power option. Conversely, a high accuracy level request may cause the mobile device to rely on a more accurate but more power-hungry location service such as GPS. In some cases, the controller  54  may be configured to send one of the mobile devices a request to temporarily turn on GPS functionality within the mobile device and to return a GPS location to the controller. 
     In some instances, the controller  54  may be configured to receive an indication from one or more of the mobile devices of a current location of the mobile device not in response to the mobile device crossing the geofence that is associated with the corresponding user account. For example, the controller  54  may periodically ask a mobile device to confirm its location. In some instances, the mobile device itself may be instructed to periodically broadcast its location. In some cases, the mobile device may be instructed to periodically check its location, and only broadcast its location if the detected location does not agree with where the mobile device believed itself to be, particularly with respect to its location (inside or outside) relative to a particular geofence. 
       FIGS. 6 through 10  provide illustrative but non-limiting examples of methods that may be carried out by the building automation systems described herein. In some cases, these methods may be manifested in a non-transitory computer-readable storage medium including an executable program stored on the storage medium. The executable program may instruct a mobile device having location services to carry out various methods. While described in distinct Figures, it will be appreciated that the methods shown in  FIG. 6  through  FIG. 10  may be combinable in any desired way. 
       FIG. 6  shows an illustrative a method that begins with storing a geofence that has an inside and an outside, as generally indicated at block  200 . This geofence may be stored in the mobile device. As seen at block  202 , communication between the mobile device and a building automation server (such as the building automation server  26 ) may be established. A geofence crossing notification may be sent to the building automation server when the location services of the mobile device indicates that the mobile device has crossed the geofence, as generally indicated at block  204 . The notification may include whether the crossing was from the inside of the geofence to the outside or from the outside of the geofence to the inside. In some cases, the geofence may include a first geofence used to detect an outbound crossing and a second geofence to detect in inbound crossing. In some cases, the location services of the mobile device may initiate the executable program to establish communication between the mobile device and a building automation server when the location services indicates that the mobile device has crossed the geofence. 
       FIG. 7  describes a method that begins with accepting a geofence disable input via a user interface of the mobile device, as generally seen at block  206 . In response to accepting the geofence disable input, the mobile device may send an instruction to the building automation server that the mobile device has a disabled status and should no longer be considered for geofencing, as generally seen at block  208 . 
       FIG. 8  describes a method that begins with the mobile device accepting a geofence enable input via a user interface of the mobile device, as generally seen at block  210 . In response to accepting the geofence enable input, and as shown at block  212 , the mobile device may send an instruction to the building automation server that the mobile device has an enabled status and should be considered for geofencing. 
       FIG. 9  describes a method that begins with the mobile device accepting a set point change via a user interface of the mobile device, as generally indicated at block  214 . The set point change can be an HVAC temperature set point, a lighting timing set point, or the like. In response to accepting the set point change, and as shown at block  216 , the mobile device may send an instruction to the building automation server to change a set point of a building controller. 
       FIG. 10  describes a method that begins with establishing communication between the mobile device and a building automation server upon activation of the location services of the mobile device, as generally shown at block  218 . Once communication has been established, the mobile device may send an indication of a current location of the mobile device to the building automation server as generally shown at block  220 . In some instances, whenever location services is activated on a mobile device, the mobile device may send an indication of a current location of the mobile device to the building automation server. 
     Those skilled in the art will recognize that the present disclosure may be manifested in a variety of forms other than the specific embodiments described and contemplated herein. Accordingly, departure in form and detail may be made without departing from the scope and spirit of the present disclosure as described in the appended claims.