The present invention relates generally to sensors. More particularly, the present invention relates to a cloud-enabled low power Wi-Fi sensor.
Residential wireless communicating devices are most easily installed when they are self-powered and Wi-Fi enabled. For example, Wi-Fi enabled security sensors, such as, motion sensors, can enable home owners to leverage their existing in-home communication devices, such as Wi-Fi routers, computers, and tablets, for economic, low-cost development and customization of home security and monitoring systems.
Low power Wi-Fi sensors are a desired wireless technology for home security and monitoring systems because such sensors consume less battery as compared to traditional Wi-Fi sensors and accordingly, are energy efficient. Low power Wi-Fi sensors are also a desired wireless technology for home security and monitoring systems because such sensors reduce operation costs.
Furthermore, a significant market exists for battery powered sensors that can wirelessly link to a cloud server via a homeowner's in-home internet connection and/or Wi-Fi access point (AP). For example, if a sensor device can link to a cloud server, then information from the sensor device can be integrated, via a browser enabled device, with various user and social networking services and/or web-based portals, such as a security service provider's website, a third party web-based integration and/or automation framework, and/or a homeowner's Facebook account. However, battery life is an issue, and problems arise when attempting to obtain adequate battery replacement intervals while simultaneously providing timely sensor event reports and timely access to the sensor from a remote web client.
Low power Wi-Fi sensors or other low-power devices, such as actuators and combination devices, can be expected to operate on two AAA or AA batteries for two years without replacement. Accordingly, there is a continuing, ongoing need for an improved low power Wi-Fi sensor.
While this invention is susceptible of an embodiment in many different forms, there are shown in the drawings and will be described herein in detail specific embodiments thereof with the understanding that the present disclosure is to be considered as an exemplification of the principles of the invention. It is not intended to limit the invention to the specific illustrated embodiments.
Embodiments disclosed herein include a cloud-enabled low power Wi-Fi sensor device or other low power wireless device. The term sensor device is used herein to discuss embodiments of the present invention. However, it is to be understood that embodiments of the present invention are not so limited. For example, embodiments disclosed herein can include any low power device as would be understood by those of ordinary skill in the art, including, but not limited to, an actuator or any combination device that includes sensors, actuators, displays, and computing resources.
Some embodiments disclosed herein can include a web-based system and method that can cope with the duty-cycled nature of low power Wi-Fi sensors. In some embodiments, rigorous energy conservation schemes, such as duty cycling, are required and can include a sensor triggering an event message whenever a physical event is detected, a sensor triggering a supervisory event once every predetermined period of time to verify the active state of the sensor when no physical event is detected, and/or a sensor transmitting a check-in message once every predetermined period of time for Wi-Fi communication function verification. In some embodiments, a check-in message can include a periodic time interval report message.
Some embodiments disclosed herein can manage power consumption by sleeping at ultra-low power, minimizing the amount of time that a transceiver is on, and/or minimizing the number of transmissions from the sensor device. For example, in some embodiments, to minimize the amount of time that a receiver is on, a sensor device in accordance with disclosed embodiments can operate in a low power sleep mode for a majority of time and can only wake up, that is, exit the low power sleep mode, to respond to a check-in clock interrupt and/or a sensor interrupt line. Accordingly, the check-in clock interrupt and/or the sensor interrupt line can act as triggers for the transceiver to be turned on. In some embodiments, when one of these triggers occurs, the sensor device can exit the low power sleep mode, send a single message to a cloud server, wait, with the ability to receive a message enabled, to receive an acknowledgement message (ACK) from the cloud server, and return to the low power sleep mode. Accordingly, the transceiver can be on only while waiting for an acknowledgement message from the cloud server.
In some embodiments, the cloud server itself can be optimized to respond quickly to a received message with an acknowledgement message that enables the sensor device to return to the low power sleep mode. For example, in some embodiments, the cloud server can transmit an acknowledgement message response to a received message substantially immediately after receiving the message so as to minimize the period of time that a sensor device remains out of a low power sleep mode and so as to minimize the amount of energy consumed by the sensor device. In some embodiments, the acknowledgement message transmitted from the cloud server to the sensor device can include a bit instructing the sensor device to stay awake. Accordingly, the cloud server can enable the sensor device to be configured and/or to stay on-line and/or awake, that is, out of the low power sleep mode.
When no acknowledgement message is received within a predetermined period of time responsive to a message transmitted to the cloud server, the sensor device can re-transmit its message to the cloud server. However, in some embodiments, the sensor device can limit the number of attempts to retransmit its message and return to the low power sleep mode to avoid excessive energy consumption under conditions in which the cloud server may not be available. In some embodiments, the predetermined period of time can include a time period slightly longer than a round trip time period. For example, the round trip time period can include a time for transmission of the message from the sensor device to the cloud server, plus the time for cloud server processing, plus the time for transmission of the acknowledgement receipt from the cloud server to the sensor device.
In some embodiments, upon initial power up, the sensor device can temporarily behave as an AP to provide a web interface for configuring the device. A user can temporarily associate a user device, for example, a smart phone, laptop computer or tablet computer, with the sensor device while the sensor device is temporarily behaving as an AP. The smart phone or other device can configure the sensor device with information, and, after successful configuration, the sensor device can stop behaving as an AP and instead associated as a Wi-Fi client with a local AP, for example, the user's home AP. Once associated, the sensor device can function as a Wi-Fi client and periodically and/or upon event detection send messages to a cloud server, for example, a Cirrus User Datagram Protocol (UDP) web server. When the sensor device receives an acknowledgement message from the cloud server, the sensor device can transition to the ultra-low power duty cycle mode, that is, the low power sleep mode, until a subsequent event occurs and/or until the next time to transmit a message arrives.
To achieve timely web access from a remote internet web client to the sensor device, the sensor device in accordance with disclosed embodiments can periodically and efficiently check in with the cloud server, via the local AP, in a manner as outlined above. In some embodiments, the period between attempts to check in with the cloud server can be stretched out to a maximum time that a user is willing to wait to get a response directly from the sensor device. In some embodiments, a server can act as a surrogate for the sensor device while sensor device access is pending.
To maintain its ability to exit the low-power sleep mode and immediately send a message, the sensor device as disclosed herein can keep its AP association active while sleeping, that is, while in the low power sleep mode. To maintain an active access point association, in some embodiments, the sensor device can maintain a current security key, DHCP allocation, and/or other state information necessary to resume operation following a sleep period. Additionally or alternatively, to maintain an active access point association, in some embodiments, the sensor device can send a packet to the access point once every predetermined period of time, for example, once per minute or more than once per minute, to avoid having the access point tear down the association.
For example, in some embodiments, the sensor device can periodically exit the low power sleep mode and transmit a message packet, even a null message packet, to the access point with which it is connected and/or associated in order to maintain the sensor device's association with the access point throughout the duration of the sensor device's low power sleep mode. Although periodically transmitting packets to an access point can consume power, in some embodiments, the negative effect of such power consumption can be outweighed by the positive effect of saving power by avoiding the need to reestablish an association with the access point every time the sensor device must send an event message to the cloud server.
In some embodiments; systems and methods disclosed herein can provide for normal operation and interaction between the sensor device and the cloud server to include a two packet exchange. For example, a first packet can be sent from the sensor device to the cloud server, and a second packet, for example, an acknowledgement message, can be sent from the cloud server to the sensor device. Accordingly, in some embodiments, normal operation and interaction need not include a verbose TCP connection as is the case for normal internet traffic. Instead, for power efficiency, a maximum power savings can be obtained by, responsive to event and check-in conditions, allowing for one UDP packet or message to be sent from the sensor device to the cloud server and for one UDP packet or message (ACK) to be sent from the cloud server to the sensor device. In embodiments in which there is a need for more extensive or continued dialogue, for example, dialog with higher throughput, between the sensor device and the cloud server and/or in embodiments in which there is a need for a for communication with higher reliability, systems and methods disclosed herein can support a conversion to a TCP connection with full services.
In some embodiments, security can be maintained by attaching a message authentication code to each message transmitted from the sensor device to the cloud server and/or to each message transmitted from the cloud server to the sensor device. In some embodiments, the security provided by the message authentication code can span the sleep intervals of the sensor device.
In some embodiments, security can be maintained by encrypting at least some of the data in messages transmitted from the sensor device to the cloud server and/or from the cloud server to the sensor device. In some embodiments, security can be maintained by use of a security key. In some embodiments, once a security relationship is established between the sensor device and the cloud server, the security features, including encrypting message content for privacy and/or authenticating the source and integrity of messages, can remain fully in force, despite long sleep periods and/or the unavailability of the sensor device.
According to disclosed embodiments, a sensor device and a cloud server as disclosed herein can communicate data via UDP. For example, the UDP service can be structured on the server side as a back end process and a database server device can be used as a gateway to other services.
As explained above, the sensor device and cloud server in accordance with disclosed embodiments can transmit messages to one another. In some embodiments, each message transmitted from the sensor device to the cloud server and/or from the cloud server to the sensor device can include, for example, 104 bits or 128 bits, although embodiments disclosed herein are not so limited. For example, the message, such as a UDP message, transmitted from the sensor device to the cloud server and/or from the cloud server to sensor device can include the following information fields: a message type field, a tag identifier field, a sequence number field, a time stamp field, and an event field. The tag identifier field, sequence number field, time stamp field, and event field can be included in the payload of the message.
The message type field can be included in the header of the message, and in some embodiments, the message type field can include an 8-bit value that defines both the content and meaning of the message payload. For example, the message type field can be used by the cloud server to distinguish between types of messages and how message payloads should be parsed.
The tag identifier field in the payload of the message can include a unique identifier of the sensor device, the status/event of the sensor device, and/or a time stamp. In some embodiments, the same message structure can be used for both status event messages (triggered by a sensor) and periodic report or check-in messages (signaling that the sensor device is alive and reporting its status). In some embodiments, a check-in message can include a current tag configuration that can be used as a passive acknowledgement message for reconfiguration requests. In some embodiments, to prevent the collision of sensor identifications, a globally unique 48-bit MAC address of the sensor device's Wi-Fi radio can be used as the tag identifier.
The sequence number field in the payload of the message can include a number that can be used by the cloud server to facilitate reliable delivery and/or to monitor a number of missed messages.
The time stamp field in the payload of the message can be used for keeping events from the same tag identifier in proper temporal order. For example, in some embodiments, the time stamp field can include a 32-bit integer specifying a number of seconds that elapsed since the device associated with the tag identifier was last powered up.
Finally, for status event messages, the event field in the payload of the message can include an 8-bit number showing a current sensor status. For check-in messages, the event field in the payload of the message can include a 32-bit number showing a current duty cycle period in seconds.
As explained above, messages transmitted between the sensor device and cloud server are not limited to the UDP messages. For example, in some embodiments, a light-weight energy efficient communication protocol, such as a Cirrus Application Level Protocol (CALP) can run on top of UDP and provide enhanced communication reliability between the sensor device and the cloud server. In these embodiments, each message transmitted from the sensor device to the cloud server and/or from the cloud server to the sensor device can include the following information fields: an IP header and an IP payload. The IP payload can include a UDP header and a UDP payload, and the UDP payload can include a CALP header, a CALP payload, and a message integrity code.
In some embodiments, the UDP payload can include a 128-bit, keyed hash or message integrity code that is computed over the payload. In some embodiments, the CALP header can include a device identifier field, a CALP version identifier field, a CALP sequence number field, a CALP attributes field, and a CALP message identifier field.
The device identifier field in the CALP header can include a globally unique 48-bit MAC address of the sensor device's Wi-Fi radio, which can act as the identifier for the sensor device. The CALP version identifier field in the CALP header can include an 8-bit value providing for CALP protocol migration. The CALP sequence number field can include a unique 64-bit sequence number that can be used for reliable, in sequence message delivery between the sensor device and the cloud server and to monitor the number of missed communications. In some embodiments, a retransmission of a message can include the same CALP sequence number as the originally transmitted message.
In some embodiments, the CALP attributes field in the CALP header can include 8 bits defining flags used for communication reliability enhancement. For example, some of the bits in the CALP attributes field of the CALP header can indicate whether the message originated from the cloud server, whether the message is an acknowledgement message, whether the transmitter of the message requests the receiver of the message to stay awake, that is, out of a low power sleep mode, whether parsing and processing of a received message was successful, and/or whether the sensor device is using manufacturer default security keys.
The CALP message identifier field in the CALP header can indicate the type of message, for example, a physical event message, a check-in message, a supervisory event message, a configuration message, an acknowledgement message, and the like.
In some embodiments, an event message can be triggered by an event or other condition detected by the sensor device. An event message can include the status and/or event of the sensor device and a time stamp in the CALP payload. For example, the CALP payload field for an event message can include a 32-bit time stamp and an 8-bit event code. The time stamp can be used for properly time sequencing events and can specify the number of seconds that have elapsed since the last time the sensor device had its battery replaced.
In some embodiments, a beacon, or check-in, message can be triggered by a timer. For example, the check-in message can enable the sensor device to check in with the cloud server. In some embodiments, the cloud server can adjust the expiration time for the timer via configuration and/or reconfiguration messages transmitted to the sensor device. In some embodiments, the CALP payload field for a check-in message can include a 32-bit time stamp and an 8-bit event code. The time stamp can mark the time when the timer triggered the check-in message.
In some embodiments, a supervisory event message can be triggered by a timer. Furthermore, the CALP payload field for a supervisory event message can include a 32-bit time stamp and an 8-bit event code.
In some embodiments, a configuration message can be used to change the operating parameters of a sensor device. For example, the CALP payload field for a configuration message can include an 8-bit configuration parameter identifier, an 8-bit parameter length, a configuration value, and/or additional configuration parameters.
As explained above, after the cloud server receives any of the messages as described above from a sensor device, the cloud server can transmit an acknowledgement message to the sensor device. Similarly, after the sensor device receives any of the messages as described above from the cloud server, the sensor device can transmit an acknowledgement message to the cloud server. In some embodiments, an acknowledgement message can include the following information fields: a constant 8-bit message type field and an 8-bit sequence number field. For example, in some embodiments, the 8-bit sequence number field can include the same sequence number from the incoming message the acknowledgement message is acknowledging. In some embodiments, an acknowledgement message can include a CALP payload field that indicates the success or failure of receiving, parsing, and/or processing the message that the message is acknowledging.
In some embodiments, instead of and/or in addition to transmitting an acknowledgement message, the cloud server can transmit a reconfiguration message, a stay awake message, and/or an acknowledgement message with an asserted stay awake indication responsive to a received message from a sensor device. A reconfiguration message can include the following information fields: a constant 8-bit message type field, an 8-bit sequence number field, and an arbitrary number of configuration identification/configuration value pair fields. For example, in some embodiments, the 8-bit sequence number field can include the same sequence number from the incoming message the acknowledgement receipt is acknowledging. In some embodiments, the configuration identification/configuration value pair fields can support a duty cycle reconfiguration by specifying a new duty cycle period in seconds. In some embodiments, configuration values can be saved in persistent storage on a tag for a sensor device so that the sensor device can resume its latest configuration after any battery replacement.
In some embodiments, when the cloud server receives any message from the sensor device, the cloud server can respond to the received message in a quick manner. When response time is fast, the energy consumption in the sensor device associated with delivering the message to the cloud server can be reduced because, in some embodiments, the sensor device can remain awake and out of the low power sleep mode while waiting for a response message from the cloud server.
When the sensor device detects an event to exit the low power sleep mode and thus, exits the low power sleep mode, the sensor device can construct either an event message or a check-in message that can be formatted according to the message structures explained above and others in accordance with disclosed embodiments. In some embodiments, constructed messages can be filtered to remove and/or suppress duplicate event messages, and filtered messages can be queued, causing the sensor device to enter a queue management mode.
While in the queue management mode, the sensor device can determine the size of its message queue. When the message queue is empty, the sensor device can return to the low power sleep mode. However, when the message queue is not empty, a first message in the queue can be de-queued, and the sensor device can enter a time/wait mode.
Once in the time/wait mode, the sensor device can transmit the de-queued message to a cloud server. Upon transmission of a message, a wait timer can be initialized and set for a predetermined period of time. The sensor device can stay in the time/wait mode until it receives an acknowledgement message from the cloud server responsive to the transmitted message and/or for a maximum number of retransmissions of the de-queued message. For example, when the sensor device fails to receive an appropriate acknowledgement message responsive to a transmitted message within the predetermined period of time, the sensor device can re-transmit the message. However, the number of retransmission attempts can be limited in order to limit power consumption. When the sensor device receives an appropriate acknowledgement message, the sensor device can return to the queue management mode.
In some embodiments, the sensor device can receive a reconfiguration message from a cloud server. If the sensor device is in the time/wait mode upon receipt of a reconfiguration message, the sensor device can transmit an acknowledgement message responsive to the reconfiguration message and enter a reconfiguration mode.
When in the reconfiguration mode, the sensor device can stay awake, that is, out of the low power sleep mode and cycle through a process of receiving a reconfiguration message and transmitting an acknowledgement message until the sensor device receives a reconfiguration message indicating that reconfiguration is complete. Once reconfiguration is complete, the sensor device can return to the time/wait mode.
As seen in
However, if there are any active reconfiguration requests for the sensor device, the cloud server can immediately format and transmit a reconfiguration message to the sensor device. In some embodiments, the transmitted reconfiguration message can also function as an acknowledgement message for the received message. Once a reconfiguration message is transmitted, the active reconfiguration request can be marked as sent in the database, although the reconfiguration request can remain active until the cloud server receives an acknowledgement message for the transmitted reconfiguration message. Upon receipt of such an acknowledgement message, the reconfiguration message can be marked as completed and/or inactive in the database. When all active reconfiguration requests are marked as completed, the cloud server can enter the database commit mode.
In accordance with IEEE 802.11, in some embodiments, the sensor device can include an intermediary mode in which the sensor device out of the low power sleep mode, but is not in a power consumption mode as shown and described herein. For example, in the intermediary mode, the sensor device can consume more power than in the low power sleep mode, but less power than a standard operating mode. In some embodiments, the sensor device can enter the intermediary mode while waiting to receive an acknowledgement message.
Upon receipt of the message with the stay awake message asserted, the sensor device can alter its normal behavior such that, instead of immediately entering a low power sleep mode after receipt of the acknowledgement message, the sensor device can stay awake. Then, the cloud server can obtain reconfiguration information from the database and transmit a reconfiguration message to the sensor device with the expectation that the sensor device will be awake for reception of the reconfiguration message. Upon receipt of the reconfiguration message, the sensor device can reconfigure itself according to information in the reconfiguration message and transmit an acknowledgement message to the cloud server to indicate successful reconfiguration. Then, the cloud server can update the database to indicate that the sensor device has been reconfigured and transmit an acknowledgement message to the sensor device indicating that reconfiguration is complete and/or that the sensor device may return to the low power sleep mode. In this case, the acknowledgement message can have the stay awake bit de-asserted. Accordingly, upon receipt of such a message, the sensor device can reenter the low power sleep mode. It is to be understood that, in some embodiments, the sensor device can maintain control of its energy consumption and, after a predetermined time out period, return to the low power sleep mode when the cloud server fails to respond in a timely manner with an acknowledgement message that includes a de-asserted stay awake bit.
As seen in
As seen in
The sensor device 1210 can include one or more sensor 1211 for sensing a condition, such as an ambient condition or a condition of the device 1210, a transceiver 1218, for example, a radio, control circuitry 1212, one or more programmable processors 1214, a memory device 1215, and executable control software 1216 as would be understood by those of skill in the art. Similarly, the cloud server device 1220 can include a transceiver 1228, control circuitry 1222, one or more programmable processors 1224, a memory device 1225, and executable control software 1226 as would be understood by those of skill in the art. The executable control software 1216, 1226 can be stored on a respective transitory or non-transitory local computer readable medium, including, but not limited, to local computer memory, RAM, optical storage media, magnetic storage media, flash memory, and the like.
Although a few embodiments have been described in detail above, other modifications are possible. For example, the logic flows described above do not require the particular order described, or sequential order, to achieve desirable results. Other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Other embodiments may be within the scope of the invention.
From the foregoing, it will be observed that numerous variations and modifications may be effected without departing from the spirit and scope of the invention. It is to be understood that no limitation with respect to the specific system or method described herein is intended or should be inferred. It is, of course, intended to cover all such modifications as fall within the sprit and scope of the invention.