Patent Description:
Wireless communication systems may include a wireless device, such as an Internet of Things (IoT) device that may be smart and is powered by batteries. Such wireless devices may operate in different energy modes, such as sleep and awake modes to, at least in part, preserve battery life. The wakeup frequency and duration of the wireless device in the different energy modes may not always be optimal in terms of preserving battery life, and may be dependent upon other parameters and/or characteristics of the communication system.

Wi-Fi Power Saving Mode (PSM) is one example of a communication technology utilized by battery powered IoT devices to establish and maintain a Wi-Fi link with an Access Point (AP) device. With Wi-Fi PSM, IoT devices may enter into a sleep state for a predetermined amount of time to save energy after providing notification to the AP device of the IoT device's change in state (i.e., from awake to sleep states). When notified, the AP device may start buffering packets for the sleeping IoT device. The IoT device must awake periodically to check beacons from the AP device that indicate if a buffered packet exists for the IoT device. If a buffered packet does exist, the IoT device retrieves the packet via a Power Save (PS) Poll message.

Unfortunately, IoT devices must awake frequently to monitor the beacons for buffered packages thus expending energy from IoT device batteries. Moreover, the duration that an AP device will buffer a packet (i.e., time before the AP device drops the packet) for an IoT device is limited and manufacturer dependent, thus may be different from one AP device to the next. Therefore, awake periods of the IoT device are typically, conservatively, extended to reduce any chance of a buffered packet being dropped. Yet further, communications with the cloud may introduce unknown latencies, leading to less than optimal system performance. System improvements that preserve the battery life of IoT devices, and/or manage idle time of AP devices are desirable.

As one example, the wireless communication system may be a security system where the IoT devices must communicate periodically with a controller in order to signal their presence and receive commands such as arm and disarm. For a security system to work effectively, this communication should be conducted frequently. Unfortunately, such frequent communications, or responses, consumes considerable energy by the IoT device and shortens battery life.

<CIT> discloses a method of communicating between a wireless security device and a security server through an access point, the method including estimating a link latency between a time of transmission of a message from the wireless security device and a time at which a response is received from the security server.

According to an aspect of the invention there is provided a method of operating an event notification system comprising: sending a disable command from a user application to a controller; sending an effective disabled response from the controller to the user application in response to the disable command; buffering the disable command by the controller, sending an event condition from a Power Save Mode (PSM) device, through an Access Point (AP) device, and to the controller; suppressing the event condition at the controller while the disable command is buffered; and sending the buffered disable command from the controller, through the AP device, and to the PSM device in response to receipt of the event condition; wherein the effective disabled response indicates that the event notification system has been placed in a disabled state, despite the PSM device not being in a disabled state.

The controller may be a virtual panel that is part of a cloud server.

The method may include sending an enable command from the user application to the controller; buffering the enable command by the controller; sending a heartbeat from the PSM device, through the AP device, and to the controller; sending a heartbeat response from the controller, through the AP device, and to the PSM device, wherein the heartbeat response includes the enable command and is in response to the heartbeat.

The method may include enabling the PSM device after receiving the heartbeat response; and sending an enabled confirmation signal from the PSM device, through the controller, and to the user application.

The user application may be a smart phone.

The event notification system may be a security system, wherein the enable command is an arm command, and the disable command is a disarm command.

However, it should be understood that the following description and drawings are intended to be exemplary in nature and non-limiting.

Various features will become apparent to those skilled in the art from the following detailed description.

Referring to <FIG>, an example of a wireless communication system <NUM> is illustrated. The wireless communication system <NUM> may include a wireless device <NUM>, a control assembly <NUM>, and a user application <NUM> that may be a mobile application. The control assembly <NUM> may include a gateway or Access Point (AP) device <NUM> and a controller <NUM>. The controller <NUM> may be a server, and may be, or is part of, a cloud <NUM>. The controller <NUM> may include a computing processor <NUM> and a storage medium <NUM>. The wireless device <NUM> may be configured to communicate with the AP device <NUM> over a wireless pathway (see arrow <NUM>). The AP device <NUM> may be configured to communicate with the wireless device <NUM>, the controller <NUM>, and/or the mobile application <NUM> over respective pathways (see arrows <NUM>, <NUM>, <NUM>) that may be wireless pathways. The cloud <NUM>, and/or controller <NUM>, may be configured to communicate with the AP device <NUM> over a pathway (see arrow <NUM>) that may be wireless, and the mobile application <NUM> over a pathway (see arrow <NUM>) that may be wireless. The mobile application <NUM> may be configured to communicate with the wireless device <NUM> over a pathway <NUM> that may be wireless, communicate with the AP device <NUM> over a wireless pathway (see arrow <NUM>), and/or communicate with the controller <NUM> over a pathway (see arrow <NUM>) that may be wireless. In one example, the mobile application <NUM> may directly connect to the cloud <NUM> via a third generation of mobile telecommunications technology (i.e., <NUM>), or indirectly through the AP device <NUM> (i.e., Home Wi-Fi).

The AP device <NUM> may be a router having firmware that supports Wi-Fi Power Save Mode (PSM). The mobile application <NUM> may be a smart phone, a digital media player, a tablet computer, and other applications. Examples of a wireless device <NUM> may include smart home sensors or intrusion sensors of a security system configured to detect the opening of windows or doors, Passive Infrared (PIR) sensors, image sensors (i.e., PIR sensor with camera), thermal sensors of a heating system configured to measure the temperature of ambient air, gas sensors configured to detect the presence of gases, smoke detectors as part of a safety system, and many other types of devices utilizing batteries and communicating wirelessly.

The wireless device <NUM> may further be a smart device, an Internet of Things (IoT) device, and/or a Wi-Fi PSM device configured to communicate with the cloud <NUM> through the AP device <NUM>. The wireless device <NUM> may include a power management module <NUM> (i.e., battery and a means of managing battery power), a sensor and/or actuator <NUM>, a computing processor <NUM> (e.g., microcontroller), and a wireless transceiver <NUM>. As a PSM device, the wireless device <NUM> is configured to enter into sleep and awake states at a predetermined frequency and duration of time.

In one example and when in a sleep state, internal timer(s) <NUM> of the processor <NUM> of the wireless device <NUM> may remain powered, but all other components of the wireless device <NUM> are generally turned off. The wireless device <NUM> may awake from the sleep state when a pre-specified awake time occurs, or when an enabled interrupt is triggered (i.e., an event sensed by the sensor <NUM> occurs). Generally, maximizing the sleep state durations and/or reducing or eliminating the need to track AP beacons, optimizes battery life. In one example, the preferred life for a battery of a low power IoT device is about four to five years.

The wireless communication system <NUM> eliminates the need for more traditional tracking of beacons broadcasted by the AP device <NUM> to the wireless device <NUM>, and thereby may maximize the standby time (i.e., sleep state duration) of the wireless device <NUM>. Beacons do not need to be tracked for receiving a buffered packet from the AP device <NUM>, since a Power Save (PS) poll (i.e., PS poll signal) may be sent straight away from the wireless device <NUM> to the AP device <NUM>. The AP device <NUM> may reply to the PS poll with an Acknowledgement (ACK), (i.e., acknowledgement signal) followed by a buffered packet if a signal or data has been buffered by the AP device <NUM> for retrieval by the wireless device <NUM>, or directly with the buffered packets. If there is no packet buffered, the response is a no-data packet, or the ACK followed by the no-data packet. In the event that a no-data packet is received by the wireless device <NUM>, the wireless device <NUM> may return to a sleep state. If no packet is received by the wireless device <NUM>, the wireless device may return to a sleep state after a pre-specified duration of the awake state has expired (i.e., timed-out). After another pre-specified duration in a sleep state, the wireless device <NUM> will wake up again and send a PS poll to retrieve the buffered packet as previously described. The process will repeat until a data packet is received, or a pre-specified counter reaches its limit.

Referring to <FIG>, a schematic generally outlining communications between the wireless device <NUM>, the AP device <NUM>, the server <NUM> (i.e., and/or cloud <NUM>), and the mobile application <NUM> along a timeline (see arrow <NUM>) is illustrated. This particular string of communications generally depicts a process wherein the wireless device <NUM> initiates Wi-Fi PSM without requiring the wireless device <NUM> to track beacons broadcasted by the AP device <NUM>. That is, the wireless device <NUM> is configured to ignore the beacons broadcasted by the AP device <NUM>.

More specifically, the wireless device <NUM> of the communication system <NUM> may send a first request <NUM> (i.e., heartbeat or request signal) through the AP device <NUM> and to the server <NUM> when in a first awake state <NUM> (i.e., the PSM). Upon receiving the first request <NUM>, the AP device <NUM> may send an acknowledgement (ACK) <NUM> to the wireless device <NUM>. The ACK <NUM> may be a Wi-Fi ACK at a MAC level. After receiving the ACK <NUM>, the wireless device <NUM> may enter into a minor sleep state <NUM>. The minor sleep state <NUM> has a conservative duration that is longer than an uplink latency (see arrow <NUM>), but may be shorter than the summation of the uplink latency <NUM> plus a buffer timeout duration. In one example, the minor sleep state <NUM> duration may be shorter than the buffer timeout duration.

In one example, and generally while the wireless device <NUM> is in the minor sleep state <NUM>, the server <NUM> may receive the first request <NUM> from the AP device <NUM> and send a first response <NUM> to the AP device <NUM>. In general, the uplink latency <NUM> may be measured from the time that the AP device <NUM> receives the first request <NUM> to the time that the AP device <NUM> receives the first response <NUM>. It is understood that the first response <NUM> may not contain any command language, or command data, and may instead be an empty packet, a registration request, information on status, and/or other related responses. In one example, the uplink latency <NUM> may be less than the duration of the summation of the first awake state <NUM> plus the duration of the minor sleep state <NUM>.

The first response <NUM> may be buffered by the AP device <NUM>, and thus awaits retrieval by the wireless device <NUM> as a data packet <NUM> (i.e., buffered packet). Because the minor sleep state <NUM> duration is generally less than the summation of the uplink latency <NUM> and the AP buffer timeout duration, the data packet <NUM> will not be dropped by the AP device <NUM>. Unlike other data packets to be described below, data packet <NUM> may not contain a command from the mobile device <NUM>, and instead may contain information such as registration information, status information, and the like.

From the minor sleep state <NUM>, the wireless device <NUM> may enter into a second awake state <NUM>. When in the second awake state <NUM>, the wireless device <NUM> may send a first Power Save (PS) poll <NUM> to the AP device <NUM>. In response to the first PS poll <NUM>, the AP device <NUM> may send the buffered data packet <NUM> to the wireless device <NUM>. After receiving the data packet <NUM>, the wireless device <NUM> may send an ACK <NUM> to the AP device <NUM>, and then enter into a major sleep state <NUM>.

The major sleep state <NUM> duration may be as long as reasonably possible, but shorter than an idle time of the AP device <NUM> to prevent disassociation of the AP device <NUM> from the wireless device <NUM>. The duration of the major sleep state <NUM> is considerably longer than the duration of the minor sleep state <NUM>, and thus facilitates a reduction in energy consumption of the wireless device <NUM>. In one example, the duration of the minor sleep state <NUM> may be about one (<NUM>) second, and the duration of the major sleep state <NUM> may be about fifty (<NUM>) seconds. Moreover, the major sleep state <NUM> may be more energy efficient than the minor sleep state <NUM> because in the minor sleep state <NUM> only the transceiver and some additional hardware may be switched off. In the major sleep state <NUM>, the transceiver, various hardware, the processor (e.g., CPU), and some voltage regulators may be switched off. That is, for the major sleep state <NUM>, only a real time counter or oscillator may remain on to trigger an interrupt to awake the processor.

In one example, receipt of the first data packet <NUM> enables the wireless device <NUM> to determine if further actions need to be performed, for example, a command to take a picture. More specifically, the data packet <NUM> may contain a command that requires processing by the wireless device <NUM>, and execution of the command that may entail sending a command response (not shown), from the wireless device, through the AP device <NUM>, and to the server <NUM>. It is further understood that the ACK <NUM> (i.e., or the ACK part of the data packet <NUM>) functions to indicate if there are multiple packets to be retrieved. If there are multiple packets, multiple PS polls would be sent until all of the buffered packets are retrieved.

It is contemplated and understood that prior to receipt and buffering of the data packet <NUM> by the AP device <NUM>, and thus prior to the second awake state <NUM>, the wireless device <NUM> may awake and send at least one PS poll (not shown in <FIG>) that is acknowledged by the AP device <NUM>, and wherein the AP device <NUM> then sends a no-data packet (not shown) to the wireless device <NUM>. The no-data packet is originated by the AP device <NUM> as a result of the associated PS poll and not having any buffered packet for the wireless device <NUM>, and is therefore not buffered by the AP device. Upon receipt of the no-data packet by the wireless device <NUM>, the wireless device may return to a sleep state until the next PS poll.

The server <NUM> may be configured to receive command signals <NUM> from the mobile application <NUM>. In one example, the command signal <NUM> may be associated with a learned buffer timeout duration to be discussed further below. Once received, the server <NUM> may buffer the command signal <NUM>, while awaiting retrieval by the wireless device <NUM> through the AP device <NUM>. Generally, it is understood that the buffer timeout duration of a cloud server may be substantially longer than the buffer timeout duration of the AP device <NUM>, which may be manufacturer dependent.

While the command signal <NUM> is buffered by the server <NUM>, the wireless device <NUM> may enter into a third awake state <NUM> from the second sleep state <NUM>. While in the third awake state <NUM>, the wireless device <NUM> may send a second request <NUM>, through the AP device <NUM>, and to the server <NUM>. After sending the second request <NUM>, the wireless device <NUM> may enter into a second minor sleep state <NUM>. The second request <NUM> may generally be an inquiry for data or commands from the cloud. In the present example, the second request <NUM> enacts retrieval of the command signal <NUM> from the server <NUM> for buffering at the AP device <NUM>. That is, in response to the second request <NUM>, the server <NUM> forwards the command signal <NUM> to the AP device <NUM>, where the command signal <NUM> is, again, buffered as a data, or command, packet.

While the command signal <NUM> may be buffered by the AP device <NUM>, the wireless device <NUM> may enter into a fourth awake state <NUM> from the second minor sleep state <NUM>. While in the fourth awake state <NUM>, the wireless device <NUM> may send a second PS poll <NUM> to the AP device <NUM>. In response to the second PS poll <NUM>, the AP device <NUM> may send the data packet associated with the command signal <NUM> to the wireless device <NUM>. Upon receipt of the data packet, the wireless device <NUM> may send an ACK <NUM> to the AP device <NUM>, may perform an action in accordance with the data packet, and may then enter into a second major sleep state <NUM>. It is understood that the process of retrieving data packets from the cloud <NUM> via cloud requests and AP polling of the AP device <NUM> may generally repeat itself during normal operation. Such requests and polling may eliminate any need for more traditional tracking of beacons, thus enhancing operation of the power management module <NUM> and preserving battery life.

Generally, the present disclosure takes into account time related traits such as an uplink latency <NUM>, a buffer timeout duration of the AP device <NUM>, and an idle time of the AP device <NUM>. The uplink latency <NUM> may generally be the time it takes the cloud <NUM> to respond to a request, or heartbeat, from the wireless device <NUM>. More specifically, uplink latency <NUM> is the duration measured from the time that the heartbeat leaves the AP device <NUM> to the time that a response is received by the AP device. Once the response is received by the AP device <NUM> it may be buffered and generally becomes a packet that may, or may not, contain a command or other data. The time it takes the wireless device <NUM> to retrieve the buffered packet is not typically part of the uplink latency period.

Advantages and benefits of the non-beacon-tracking, wireless, communication system <NUM> include a reduction in the energy consumption of wireless devices <NUM> by avoiding the need to track AP beacons by the wireless device <NUM>, and maximizing the time the wireless device may stay in a sleep mode without losing packets at the AP device. The method of operating the system <NUM> may be applied to legacy AP devices, and may be more efficient than legacy Wi-Fi PSM protocol when the wireless device is certain that the AP device is buffering a packet for the wireless device. This may be true for wireless devices that stay in a sleep state for most of the time, since periodic heartbeats may be exchanged between the cloud and the devices. The present method may assist the wireless device <NUM> in maximizing the major sleep state duration according to idle time capability, and optimize the minor sleep state duration according to cloud latency and buffer capability of the AP device <NUM>, which may make the device more energy efficient.

Referring to <FIG>, one example, or application, of the wireless communication system <NUM> may be an event notification system. <FIG> generally illustrates two separate operating scenarios of the same event notification systems, such as security system. The first scenario located above the dotted line L depicts a scenario where an event condition <NUM> is triggered while an event detection and notification function of the sensor <NUM> of the wireless device <NUM> is enabled. The second scenario located below the dotted line L depicts a scenario where an event detection and notification function disable command <NUM> is sent to a server <NUM> (e.g., virtual panel) and is then followed by the event condition <NUM>. Non-limiting examples of the event notification system <NUM> may include a security system, a fire detection system, or any alarm/notification system triggered by sensed events. In the example of a security system, the system may be associated with an alarm condition as one example of the event condition <NUM>. The function disable command <NUM> for the security system <NUM> may be a disarm command, and an enable command <NUM> may be an arm command.

The event notification system <NUM> facilitates a smart, function enable/disable method for the battery-powered, wireless, devices <NUM>. In general, the event notification system <NUM> may be applicable to any security IoT devices that sleep for relatively long time intervals. That is, the applicable event notification system <NUM> may be any wireless event notification system with nodes that enter into a sleep state to save energy. Two, non-limiting, examples of such a system <NUM> are the "PSM device initiated, non-beacon-tracking, wireless, communication system" described above, and the "Server initiated, non-beacon-tracking, wireless, communication system" described herein.

The event notification system <NUM> may be a panel-less security system with distributed wireless devices <NUM> (e.g., PSM devices) with at least some of the wireless devices <NUM> configured to periodically sleep to conserve energy. Each wireless device <NUM> (i.e., or sensor <NUM> of the wireless device <NUM>) may generally maintain an enabled status and an actual disabled status, locally. Additionally, the enabled status and the disabled status may also be maintained by a central controller <NUM>. The controller <NUM> may be part of a server that may be part of the cloud <NUM>. Moreover, the controller <NUM> may generally be a virtual panel in the cloud <NUM>. In the example of a wireless security system <NUM>, the enabled status may be an armed status, and the actual disabled status may be an actual disarmed status.

For simplicity of explanation, the event notification system <NUM> will be further described in terms of the security system example. In operation, when a user, through a user application <NUM> (e.g., mobile application), arms or disarms the security system <NUM> (i.e., one or more sensors <NUM> of wireless devices <NUM>), associated arm and disarm commands <NUM>, <NUM> are sent to the virtual panel <NUM> in the cloud <NUM>. The cloud <NUM> then sends the commands <NUM>, <NUM> to individual wireless devices <NUM> based on the wireless device wakeup schedules or in response to a message received from the wireless device <NUM>.

Referring to <FIG> and <FIG>, a method of arming and disarming the wireless devices <NUM> of the wireless security system <NUM> is illustrated. At block <NUM>, the arm command <NUM> may be sent from the user application <NUM> and to the controller <NUM>. At block <NUM>, the arm command <NUM> may be buffered by the controller <NUM>. At block <NUM>, a heartbeat <NUM> may be sent from the wireless device <NUM>, through the AP device <NUM>, and to the controller <NUM>. At block <NUM>, a heartbeat response <NUM> may be sent from the controller <NUM>, through the AP device <NUM>, and to the wireless device <NUM>. The heartbeat response <NUM> may include the arm command <NUM> that may originate from the user application <NUM>.

At block <NUM>, the computing processor <NUM> of the wireless device <NUM> may arm the sensor <NUM> of the wireless device <NUM> as a result of receiving the arm command <NUM> via the heartbeat response <NUM>. At block <NUM>, an armed confirmation signal <NUM> may be sent from the wireless device <NUM>, through the controller <NUM>, and to the user application <NUM>. Although not illustrated, it is contemplated and understood that various ACK's may be sent between the AP device <NUM> and the wireless device <NUM> as is known by one skilled in the art.

At block <NUM> and generally at any time (see arrow <NUM>), the disarm command <NUM> may be initiated or entered by a user into the user application <NUM>. The user application <NUM> may then send the disarm command <NUM> to the controller <NUM> regardless of whether the wireless device <NUM> is in a sleep state or an awake state. At block <NUM>, the controller <NUM> may send a disarmed status response <NUM> to the user application <NUM> in response to the disarm command <NUM>, thereby notifying the user of the disarmed status. More specifically, the security system <NUM> is in an "effective" disarm status (see arrow <NUM>), but the wireless device <NUM> is not yet in an "actual" disarm state or status (see arrow <NUM>). Accordingly, an "actual" alarm status (see arrow <NUM>) of the wireless device <NUM> may be longer than an "effective" alarm status (see arrow <NUM>) of the security system <NUM> by an amount of time generally equivalent to a buffer interval <NUM>.

At block <NUM>, the disarm command <NUM> may be buffered (i.e., see buffer interval <NUM> in <FIG>) by the controller <NUM>. It is contemplated and understood that the buffering begins immediately upon receipt of the disarm command <NUM>, thus the command may be buffered while the disarmed status response <NUM> is sent. Furthermore, the disarm command <NUM> may be buffered regardless of whether the wireless device <NUM> is in the sleep state or in the awake state. In one example, if a heartbeat is received from the wireless device <NUM> during the buffer interval <NUM>, the disarm command <NUM> may be integrated into a heartbeat response to the wireless device <NUM>. At which point, the wireless device <NUM> will be disarmed. The buffer interval <NUM>, therefore depends on what occurs first, an alarm or a heartbeat.

At block <NUM>, a sensed event may occur at the wireless device <NUM> (i.e., before a heartbeat is sent), and the subsequent alarm condition <NUM> may be sent from the wireless device <NUM>, through the AP device <NUM>, and to the controller <NUM>. It is generally understood that block <NUM> may occur if the wireless device <NUM> is armed even though the disarm command <NUM> is being buffered, and an alarm occurs before the wireless device <NUM> sends a heartbeat to retrieve the disarm command <NUM> in the cloud <NUM>. In one scenario, a heartbeat may be sent before the alarm/event happens, then the system is disarmed and any sensing of the event will not occur.

At block <NUM> and once the alarm condition <NUM> is received by the controller <NUM>, the controller may check the status of the system (i.e., armed or disarmed). If the system is disarmed, the controller <NUM> may discard the alarm and send a disarm command to the wireless device <NUM> to synchronize the status. This occurs if the alarm command <NUM> is received and the cloud <NUM> is in a disarm state. That is, the buffering of the disarm command <NUM> generally ceases and the alarm condition <NUM> is generally suppressed. It is contemplated and understood that the wireless device <NUM> may generally receive the disarm command <NUM> immediately after sending the alarm condition <NUM>, and need not wait for the next heartbeat response. In this way, the responsiveness of the security system <NUM> is not hindered.

Although not specifically illustrated, the wireless devices <NUM> may be associated with line-powered devices. For example, a line-powered device may be an audible alarm device that is hardwired to receive power. The line-powered device may directly communicate with the wireless device and the controller <NUM> over pathways that may be wireless or hardwired.

Advantages and benefits of the security system <NUM> includes a method for arming and disarming wireless devices directly, which eliminates the need for an on-premises hub or panel. Moreover, the system maintains the same user experience for disarming battery-powered devices that do not need to wakeup periodically for receiving disarm commands. Other advantages include a method for automatic disarming that may not require external devices to track user or object locations, may not add or require extra communication load due to message exchanges, and may maintain similar cost and overall system energy savings.

Referring to <FIG> and <FIG>, the event notification system <NUM> (e.g., security system) may be configured to dynamically adapt the wakeup interval of the wireless device(s) <NUM>. One example of dynamically configurable frequencies of communication may depend upon the arming state of the system. For example, the wireless device <NUM> may send a multitude of heartbeats <NUM> to the AP device <NUM> at a first heartbeat frequency, or rate, when the system <NUM> is in the "actual" disarmed status <NUM>, and at a second heartbeat frequency when the system <NUM> is in the "actual" armed status <NUM>. In order to improve operating efficiently of the wireless device <NUM> (i.e., improve responsiveness and/or reduce energy consumption), the first frequency may be greater than the second frequency. More specifically, a duration (see arrow <NUM>) of each successive sleep state when the wireless device is in the "actual" armed status <NUM> is greater than a duration (see arrow <NUM>) of each successive sleep state when the wireless device <NUM> is in the "actual" disarmed status <NUM>. Moreover, the duration of the "actual" arm status <NUM> may be generally equal to the duration of the "effective" arm status <NUM> plus the buffer interval <NUM> that finishes when an alarm or heartbeat is received. It is contemplated and understood that the term "heartbeat" may include any communication between the wireless device <NUM> and the control assembly <NUM> (see <FIG>).

In one example, the wireless device <NUM> may be a smart device and may be programmed to increase the frequency of heartbeats <NUM> when the device <NUM> receives the disarm command <NUM>. In another example, the controller <NUM> may include instructions to the wireless device <NUM> as part of the disarm command <NUM>, and which facilitate the change in heartbeat frequency. The frequency of heartbeats relative to arm and disarm status may be configurable from the cloud <NUM>.

In one example and as previously described, the controller <NUM> may be configured to buffer (see buffer interval <NUM> in <FIG>) the disarm command <NUM> prior to the controller <NUM> sending the disarm command <NUM> to the wireless device <NUM> via the next heartbeat response <NUM> or in direct response (i.e. disarm command <NUM>) to an alarm <NUM>.

Referring to <FIG>, a method of operating the security system <NUM> includes in block <NUM> the placement of the wireless device in the disarmed status <NUM>. At block <NUM>, a first frequency of communication between the wireless device <NUM> and the control assembly <NUM> is established when the wireless device converts to, and is in, the "actual" disarmed status <NUM>. At block <NUM>, the wireless device may be placed in the "actual" armed status <NUM>. At block <NUM>, a second frequency of communication between the wireless device <NUM> and the control assembly <NUM> is established when the wireless device <NUM> converts to, and is in, the "actual" armed status <NUM>. It is contemplated and understood that the wireless device <NUM> may communicate with the control assembly <NUM> at the second frequency during the buffer interval <NUM>.

Referring to <FIG>, a second example of a security system <NUM> is illustrated wherein the frequency of communication between the wireless device <NUM> and the control assembly <NUM> is dynamically configurable. For the second example, the server <NUM>, or a cloud service, may be configured to monitor and determine the most probable time that a user interfaces with the wireless device <NUM>. The server <NUM> may generally develop and store model(s) <NUM> (see <FIG>) associated with user habits and interaction history. As a result, the wireless device <NUM> wakeup interval may be dynamically adapted according to the learnt user habits indicated by the server <NUM>, which will maximize energy savings and minimize impact of long latencies. Moreover, such usage probabilities may be used to enable/disable other subsystems and/or devices of the security system <NUM>.

In one example, model <NUM> may contain a probability of user interaction <NUM> that may resemble a bell curve. The greater the probability of user interaction, the greater is the frequency of communication between the control assembly <NUM> and the wireless device <NUM>.

The model <NUM> may be developed using statistical and probability inferences (i.e., Markov chains, statistical regression, and others), or machine-learning techniques (i.e., neural networks, support vector machines, and others). The model <NUM> may generally find a correlation in any information that may affect the probability of activation, including, but not limited to, user presence, time of the day, state of the system, weather forecasts, and others. The model <NUM> may get updated regularly with new data learned through the interactions with the system. The model <NUM> may get initialized with default values established through reasonable assumptions. If desirable, the calculations and the learning of the probability model <NUM> may be performed in a separate, non-low-power system or device rather than the cloud <NUM>, the mobile device or application <NUM>, or controller <NUM>, which may communicate the results back to the wireless device <NUM> or cloud <NUM>.

Advantages and benefits of the security system <NUM> with configurable frequencies of communication between the control assembly <NUM> and the wireless device <NUM> includes a method of operation having lower command latencies than more tradition systems. Other advantages include an improved user experience with quicker arming capability, an extension of battery life of the wireless device <NUM> (i.e., longer sleep intervals when armed), and a reduction in network traffic (i.e., a reduction in packet exchanges).

Referring to <FIG>, a schematic generally outlining another example of communications between the wireless device <NUM>, the AP device <NUM>, the server <NUM> (i.e., and/or cloud <NUM>), and the mobile application <NUM> along a timeline (see arrow <NUM>) is provided. This particular string of communications generally depicts a process wherein energy consumption in Wi-Fi PSM devices <NUM> may be reduced by eliminating the need of sending heartbeats from the PSM devices <NUM>, and eliminating the tracking of AP beacons, by synchronizing the waking (i.e., entering of the awake state) of the PSM device <NUM> with cloud <NUM> initiated requests.

The server <NUM> may generate a server heartbeat. Attached to the server heartbeat may be a heartbeat interval and any variety of commands for the PSM device <NUM>. In operation, the PSM device <NUM> will wake up, receive the server heartbeat(s), respond to any commands/requests as part of the heartbeat, and return to a sleep state until expiration of the heartbeat interval <NUM> as part of the previously sent heartbeat. In case synchronization with the server <NUM> is lost, the PSM device <NUM> may remain awake until the next heartbeat (i.e., a full server heartbeat interval) to re-synchronize with the server <NUM>.

More specifically, a wireless communication process may begin with a synchronization phase (see arrow <NUM>) while in an initial awake state <NUM>, wherein the server <NUM> sends a synchronizing heartbeat <NUM> through the AP device <NUM>, and to the wireless device <NUM>. The wireless device <NUM> may then send a synchronizing heartbeat response <NUM>, through the AP device <NUM>, and to the server <NUM>. Also during the synchronization phase <NUM> and while in the initial awake state <NUM>, the wireless device <NUM> may send a Wi-Fi enable PSM signal <NUM> to the AP device <NUM>, and may receive an ACK <NUM> from the AP device <NUM> in response. Upon receiving the ACK <NUM>, the wireless device <NUM> may enter a sleep state <NUM>. The synchronizing heartbeat <NUM> may contain information relative to a heartbeat interval (see arrow <NUM>) that represents a duration measured from the instant the wireless device <NUM> enters an awake state and to the end of the next sleep state.

Referring to <FIG>, <FIG> and <FIG>, a method of operating the "server initiated, non-beacon-tracking, wireless, communication system" <NUM> is generally illustrated. At block <NUM>, the synchronizing heartbeat <NUM> may be sent from the server <NUM>, through the AP device <NUM>, and to the wireless device <NUM> (e.g., PSM device). The synchronizing heartbeat <NUM> includes information relative to the heartbeat time interval <NUM> and thus instructs the wireless device <NUM> when to awake. At block <NUM>, the first heartbeat response <NUM> is sent from the PSM device <NUM>, through the AP device <NUM>, and to the server <NUM> (i.e., and/or cloud <NUM>) for synchronizing the PSM device with the server.

At block <NUM>, the Wi-Fi Enable PSM signal <NUM> is sent from the PSM device <NUM> to the AP device <NUM> when in the awake state <NUM>. At block <NUM>, the ACK signal <NUM> is sent from the AP device <NUM> to the PSM device <NUM> in response to the Wi-Fi Enable PSM signal <NUM>. At block <NUM>, the PSM device <NUM> enters a first sleep state <NUM> from the first awake state <NUM>. The summation of the durations of first awake state <NUM> and the first sleep state <NUM> is about equal to the heartbeat interval <NUM>, in an example where the awake state begins when the heartbeat is received.

At block <NUM> and during normal operation, an application command <NUM> is sent from the mobile application <NUM> to the server <NUM>. At block <NUM>, the application command <NUM> may be buffered by the server <NUM> until the coinciding heartbeat interval <NUM> has expired. At block <NUM> and upon expiration of relevant heartbeat interval <NUM>, the buffered application command <NUM> is advance to the AP device <NUM> via a second heartbeat <NUM> sent upon expiration of the coinciding heartbeat interval <NUM> and initialization of the next interval. At block <NUM>, the second heartbeat <NUM>, and thus the application command <NUM>, may be buffered by the AP device <NUM>. It is contemplated and understood that AP buffering of the heartbeat <NUM> may not occur, or may be generally short. However, this AP buffering capability provides a degree of system tolerance if the wireless device <NUM> is not exactly synchronized to the server <NUM>, or to some degree becomes un-synchronized.

At block <NUM>, the wireless device <NUM> may enter into a second awake state <NUM> from a previous sleep state, and approximately upon expiration of the coinciding/associated heartbeat time interval <NUM>. At block <NUM>, a Power Save (PS) poll <NUM> may be sent from the PSM device <NUM> to the AP device <NUM>. At block <NUM>, the second heartbeat <NUM> may be sent from the AP device <NUM> to the PSM device <NUM>. At block <NUM>, an ACK <NUM> may be sent from the PSM device <NUM> to the AP device <NUM>. At block <NUM>, a second heartbeat response <NUM> may be sent from the PSM device <NUM>, through the AP device <NUM>, through the server <NUM>, and to the mobile application <NUM>. At block <NUM>, the PSM device <NUM> enters a second sleep state <NUM> from the second awake state <NUM>. At block <NUM>, the PSM device <NUM> enters a third awake state <NUM> from the second sleep state <NUM> approximately upon expiration of the associated heartbeat interval <NUM>, and the PS poll process generally repeats itself.

Benefits and advantages of the "cloud initiated, non-beacon-tracking, wireless, communication system" may include the ability of PSM devices <NUM> to ignore the AP device <NUM> beacons, and the extension of time that PSM devices may stay in the sleep state without dropping packets. Other advantages include a non-beacon-tracking method of operation that is more efficient than tradition Wi-Fi PSM because the PSM device <NUM> does not need to wake up to track beacons, thus the PSM device may sleep for longer time intervals (i.e., up to AP disassociation time). Server synchronization may permit message exchange to start on the server <NUM> side, reducing the time the device <NUM> must be active due to the heartbeat generation and uplink latency <NUM>. Moreover, the implementation of this method in a multicore system (i.e., one processor for Wi-Fi communications and another for the application), may become even more efficient since the application core does not need to be woken up if commands are not received by the Wi-Fi core.

The various functions described above may be implemented or supported by a computer program that is formed from computer readable program codes and that is embodied in a computer readable medium. Computer readable program codes may include source codes, object codes, executable codes, and others. Computer readable mediums may be any type of media capable of being accessed by a computer, and may include Read Only Memory (ROM), Random Access Memory (RAM), a hard disk drive, a compact disc (CD), a digital video disc (DVD), or other forms.

Terms used herein such as component, module, system, and the like are intended to refer to a computer-related entity, either hardware, a combination of hardware and software, or software execution. By way of example, a component may be, but is not limited to, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. It is understood that an application running on a server and the server may be a component. One or more components may reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers.

Claim 1:
A method of operating an event notification system (<NUM>) comprising:
sending (<NUM>) a disable command (<NUM>) from a user application (<NUM>) to a controller (<NUM>);
sending (<NUM>) an effective disabled response (<NUM>) from the controller to the user application in response to the disable command;
buffering (<NUM>) the disable command by the controller; and
sending (<NUM>) an event condition (<NUM>) from a Power Save Mode , PSM, device (<NUM>), through an Access Point, AP, device (<NUM>), and to the controller (<NUM>);
and characterised by:
suppressing (<NUM>) the event condition at the controller while the disable command (<NUM>) is buffered; and
sending (<NUM>) the buffered disable command from the controller, through the AP device, and to the PSM device in response to receipt of the event condition;
wherein the effective disabled response indicates that the event notification system has been placed in a disabled state, despite the PSM device not being in a disabled state.