Patent Description:
In the developing connected and secure home, the services layer can garner value from the multitude of information coming from the multitude of sensors pre-existing or added in homes, buildings, and other locations. For example, at present many homes include multiple different sensors that transmit information about one or more components/systems within the homes, such as information indicating whether doors/windows are open or closed, motion sensor information, alarm status information, environmental information, and other information that sensors are capable of detecting. A large portion of installed sensors are wireless - meaning that they transmit at least some information wirelessly using one or more wireless protocols. The information from these sensors can have a variety of uses, such as being used to chart, classify and model consumer habits, initiate actions outside the home, automate devices and functions inside the home, and provide core security, life safety and home infrastructure monitoring and response.

Enrolling sensors with a third-party wireless system (e.g., a system not preconfigured to use or connect with particular sensors) can be a non-trivial operation. For instance, the wireless air can be considered one large, common channel over which all sensors are talking. Generally, an installer can enroll a sensor with a wireless system by causing a unique, uncommon transmission to be sent by the sensor, in order to ensure the correct sensor among many is being enrolled. Or, in another example, a unique identifier can be known for a sensor and entered into the wireless system. In a further example, installing old sensors with a wireless system (e.g., in takeover installations of old sensors) can include the installer identifying the make, model and function of each old sensor, which can be time-consuming and can require a fair amount of installer expertise. Regardless of how it is accomplished, the enrollment paradigm may be considered "closed," in a sense that an installer or user knows the sensors that are to be enrolled as part of the system, and some user action with the sensor is performed so that the desired sensor is installed.

Conventional closed systems provide technological and other barriers to recognizing sensors. For example, recognizing, enrolling and configuring wireless sensors in conventional closed systems is generally non-trivial because the wireless air surrounding the sensors is a large, common channel where all sensors are talking. Generally, an installer must cause a unique, uncommon transmission to be sent from a sensor in order to assure that the correct sensor among many is being enrolled. Alternatively, a unique radio frequency identifier (RFID) must be known and entered. Further, in take-over installations of old sensors, installers must identify the make, model and function of each old sensor in order to properly enroll and configure each old sensor. All of these types of actions can require significant time, expertise and cost.

<CIT> describes a security device configured to receive information regarding traffic that has been outputted by a particular user device; and compare the information regarding the traffic to security information. The security information may include device behavior information, traffic policy information, or device policy information. The security device may determine, based on the comparing, that a security threat exists with regard to the traffic; and take, based on determining that the security threat exists, remedial action with respect to the traffic. Taking the remedial action may include preventing the traffic from being forwarded to an intended destination associated with the traffic, providing an alert, regarding the security threat, to the particular user device, or providing an alert, regarding to the security threat, to another device.

This document generally describes systems, devices, computer program products, and techniques to allow for the vast majority of wireless sensors to be servable, meaning they can be enrolled into and configured in an application computing system. This can include a wireless sensor "discovery" process in which an application computing system, wherein the application computing system is a wireless security system, becomes connected with a sensor population that includes sensors from different manufacturers, using different protocols, doing different sensing functions, communicating in closed wireless manner (e.g., sensors not broadcasting their identity in a manner that is standardized across vendors or an industry), and being different operational models and vintages. Such a wireless system using the wireless sensor discovery methodologies described herein can automatically connect to a diverse sensor population like this without needing to be configured or programmed regarding the specifics of each sensor, but can instead learn such specifics by observing, evaluating, and analyzing wireless signals transmitted through the wireless space.

In this sense, it may be said that the "closed" paradigm of setting up and configuring a premises application computing system including wireless sensors has shifted to one that is "open," in the sense that wireless sensors intended to be used only in a "closed" system may be used in any application computing system without the need for the typical "closed" system enrollment and programming requirements.

The invention is defined in the claims. As recited therein, a method of assessing wireless sensors in the vicinity of an application computing system includes operating the application computing system in a listen mode to receive and record wireless packet transmissions produced by one or more wireless sensors producing wireless packet transmissions in the vicinity of the application computing system. The method also includes evaluating the recorded wireless packet transmissions using a rule set that embodies normal operating characteristics of various types of wireless sensors in an operating environment. The evaluation is performed to generate a conclusion regarding at least one attribute of at least one wireless sensor that produced the recorded wireless transmissions. The generated conclusion is used in a process to enroll the at least one wireless sensor into the application computing system. The generated conclusion is a probable assessment regarding a type of sensor for one of the at least one wireless sensor.

This sensor evaluation may occur with no user involvement, in other words, without a user causing a wireless sensor to make a special wireless transmission that tells the system that the sensor making that special transmission is to be enrolled into the system, and/or without a user or installer entering information into the system using for example a bar code or other sensor entry techniques. In addition, the sensor evaluation method may avoid the user having to determine a proper configuration of sensors and the system, in that the system utilizes a rule set that has captured how a range of different sensors may act (make transmissions) in a typical environment and set-up. In this sense, the system implements artificial intelligence and expert system methodologies.

Of course, a user or installer may be involved in the evaluation method without departing from the principles being newly described herein. For example, a user may enter preliminary information before a "discovery" sensor evaluation method is executed, and/or the system may provide a user prompt after a "discovery" process has taken place, presenting a "best guesses" as to, for example, what sensors are present in the environment, what type of sensors they are, where they are located in environment and in relation to one another, and how the sensors and system may be configured given those sensors. A user may then make entries confirming information presented, or modifying it, for example, before an enrollment of sensors or configuration (or change of configuration) of sensors and system actually occurs.

These and other implementations can each optionally include one or more of the following features. The assessment of the at least one wireless sensor in the application computing system can include presenting to a user information related to the probable assessment. That probable assessment may regard at least one of the following: type of sensor, sensor function, sensor use case, or other attribute for the at least one wireless sensor.

The assessment of the at least one wireless sensor in the application computing system can further include receiving information from a user in response to presenting information to the user. Alternatively or additionally, the method can further include receiving preliminary information regarding wireless sensors in the vicinity of the application computing system. The preliminary information may include less information than is required to fully utilize the wireless sensors in the application computing system. The received preliminary information can be provided by a user. The received preliminary information can be input from an information source. The conclusion can be provisional, and the conclusion can be changed or further refined using further information. The further information can be derived from further assessments. The sensor can be utilized in the application computing system while the system is operating in a normal mode. The method can further include using the generated conclusion to utilize the at least one wireless sensor in the application computing system.

Certain implementations may provide one or more advantages. For example, a person installing a wireless system can connect to existing sensors and use their information without having to identify the sensors' protocols, parameters, or functionality, and without having to configure the system to use the existing sensors. Instead, the wireless system can automatically learn the wireless sensor environment in which it exists, which can make the information provided by the wireless sensors available without the technical hurdle of configuring the wireless system for each of the sensors. This can allow for installation expertise and training to be reduced, and for the value of existing sensors to be increased by making the data more widely and easily available.

In another example, preexisting sensors operating within a closed wireless environment can be identified and passively enrolled with a third party system so that information from the preexisting sensors can be leveraged for other applications and uses with the third party system. Closed wireless environments include environments in which sensors do not wirelessly broadcast their identity, do not allow for enrollment outside of specifically authorized devices, and do not make available other wireless communication details (e.g., wireless transmission protocol, packet fields and data encoding). Security systems with various wireless sensors and devices that communicate with a security system panel (or other authorized security system computing device) are one example of a closed wireless environment. However, such closed environments can generate a variety of information that may be useful outside of the specific closed environment context. For instance, security system sensors can provide information that can be used for automatically controlling home automation systems. By passively detecting and enrolling sensors from closed wireless environments, the capability of third party systems can be expanded without having to install separate (and redundant) sensor arrays. For instance, if a security system with wireless security sensors already exists at a home, a home automation system can tap into the stream of security sensor information (e.g., door open/closing events, detected presence/motion of users within the home) to provide home automation features based on these features without having to install a separate home automation sensor array within the home. Additionally, the passive detection and enrollment of such security sensors with a home automation system can be accomplished without having to perform any sort of formal enrollment with the security system, which can ease the process of enrolling closed wireless system sensors with third party systems.

To obtain and use information from wireless sensors, a wireless system can recognize, enroll, and configure wireless sensors into its system.

For example, an application computing system, which may be referred to herein as a wireless system, can automatically detect, configure, use, and anticipate expected operation of wireless sensors. A wireless gateway used in a security system (such as the Helix system manufactured and distributed by the assignee of the present application) or an intelligent wireless "translator," may be part of an example wireless system that is able to automatically (or with minimized user assistance) discover, enroll, classify, and configure the system to respond to, and pass on information from, existing sensors, regardless of the sensor manufacturer, protocols, sensing functions, radio frequencies, and/or operational models/vintages.

The wireless system can, for example, use a multitude of objective and subjective algorithms to set up the system to utilize these existing sensors. Further, the algorithms can aid in discovering existing sensors from the sensors' supervisory or responsive wireless transmissions, which can involve numerous steps and phases, including deductions and inferences about interrelationships of pieces of information.

The wireless system can, for instance, automatically connect to various sensors by accumulating and/or measuring objective, deterministic information that is wirelessly detectable. Such information can include, for example, one or more of the following: frequency of operation, modulation type, modulation parameters, error detection scheme, timing of transmissions, signal strength, signal strength relative to other sensors, unique identifiers (e.g., serial numbers, identifiers), device type, and status information such as tamper, battery state, alarm state, temperature, humidity, and other conditions).

The wireless system can use various pieces of information to form a working theory of where, what, and how sensors are operating in a particular location, such as a home, a building, and/or other location. For instance, the wireless system can progress through a series of logical deductions, inferences, and/or possibilities that can narrow down each sensor's identity (e.g., type, manufacturer, protocol) from a broad range of sensors to a smaller pool of candidate sensors. Multiple iterations of deductions, inferences, and possibilities can be performed that include generating working theories for each sensor, which can be tested (e.g., theories evaluated against wirelessly detected sensor information) and then improved upon to generate better theories, which can be further tested. In some instances, theories can be additionally narrowed through actual requests for information from humans, like a pre-educated setup wizard.

The wireless system can deduce a variety of subjective information and/or indirect conclusions. Example information that is queried and/or obtained can include: <NUM>) what type of device the sensor is, such as magnetic door/window sensor, a motion sensor, and/or a tilt sensor, to name only a few possibilities; <NUM>) whether the sensor is a perimeter sensor (e.g., door or window sensor) or an interior sensor (e.g., motion detector pointing inside); <NUM>) where a particular sensor might be located (e.g., garage overhead door, garage entry door, basement motion detector); and/or <NUM>) what the sensor might be named/referred to as (e.g., "front door"). The conclusions include probable assessments regarding a type of sensor for a given wireless sensor. Each generated conclusion is ultimately used in a process to enroll the at least one wireless sensor into an application computing system that controls sensors. Conclusions can be presented to a user and can include information related to the probable assessment regarding the probable type of sensor, the sensor's function, a sensor use case, and other attributes or information for the wireless sensor.

In addition, various subjective deductions can be made on less definitive information, such as one or more of the following: <NUM>) the time delay between opening (an alarm condition) and closing (a restore); <NUM>) the time of day the sensor sends various information; <NUM>) the number of sensor trips per day, and distribution of such trips throughout the day, <NUM>) the interrelationship and relative timing or order between two or more sensors tripping; <NUM>) the relationship between sensor trips and other information collected by the wireless system itself, such as audio information, vibration, etc. <NUM>) the interrelationship and relative timing or order between a security system reporting over observable methods such as phone, cellular or IP networks and the tripping of one or more sensors, <NUM>) the minimum time between any two trips of a sensor (e.g., the fact that most wireless motions "lock out" for <NUM> minutes after any trip, could be used in guessing the sensor is a motion sensor); and/or <NUM>) the state of various status bits in the transmissions may also give clues to the exact type of sensor (e.g., some sensors may default certain unused bits a certain way).

Using the techniques described in this document, wireless energy can be detected and evaluated, and wireless parameters and/or protocols can be determined. For example, the wireless system can detect information that includes the frequency band of detected wireless signals, the modulation method and parameters. Using the detected information, the wireless system can discern the particular protocols predominant at the location (e.g., in the home). The sensor manufacturer can be determined, which may serve to introduce a whole additional subset of information about the sensor and how it operates. The sensor manufacturer may be determined, for example, from one or more of the frequency band, modulation method and parameters, particular protocols, and/or other information/wireless characteristics.

Local sensors - meaning sensors that are being used at the vicinity (e.g., house or home, building, or other location) where the wireless system is installed - can be differentiated from sensors at neighboring vicinities (e.g., neighboring home, building, or unit). For example, the wireless system can discover more than one protocol being used in the vicinity. The system can then survey the relative signal strengths of the populations of protocol <NUM> and protocol <NUM> sensors, and may conclude that the lower signal strength sensors are from a neighboring home and should generally be ignored. The system may even postulate that a neighboring home has the same protocol sensors, but by evaluating and comparing their signal strengths, can determine that those significantly lower signal strengths are from neighbor's sensors and not from the local vicinity. Other information may also be used to determine which sensors belong to the local vicinity. For example, interrelationships between multiple sensors or between a sensor and wireless-system-generated information contain information that is useful in determining whether a sensor is part of the local system.

In addition, sensor identifier numbers (IDs) included in all wireless transmissions made by a sensor and/or sensor type information can be determined using the techniques described in this document. For example, using the protocol information for the detected sensors, the wireless system can start looking at the next layer of information, such as evaluating supervisory check-ins over a period of time (e.g., several hours) to make a listing of the sensor IDs at the vicinity. For instance, since sensors generally send an hourly supervisory check-in, within several hours, the system should know what sensors it can hear well, and can make a confident listing of the sensor IDs in the home. Part of this monitoring and evaluation can also include examining whether the sensor protocol sends device types, which can be catalogued as well. In the absence of device types, the system can start evaluating what the device types might be based on detected patterns. For example, a sensor that closes about five seconds after opening might be a door/window sensor. A sensor that closes a split second after it alarms (or never closes at all) might be a motion sensor. If that same sensor has never alarmed twice closer than three minutes apart, it is a good guess it is a motion sensor. The system can include a variety patterns that are associated with particular types of sensors, which can guide the evaluation and determination of the device type.

Further yet, locations where sensors are placed within the vicinity can be determined. For instance, the wireless system can evaluate where the sensors are placed, again, based on detected patterns for the particular sensors and/or patterns across multiple sensors. For example, if a sensor is the first one to trip in a series of sensor trips, and the delay between open and close is about <NUM>-<NUM> seconds, it might be the garage door. The next trip might be the garage entry and the following trip might be the motion. Again, the wireless system can include a variety patterns that are associated with particular sensor locations (absolute and/or relative to each other). Sensors that are not frequently tripped will still transmit supervisory messages. These sensors can be identified, but are typically installed on the perimeter of homes or would fall into a life-safety sensor category.

Detecting and configuring sensors may be performed across a number of living-experience-days before the system has converged on a determination of the home's likely sensor configuration. Once the system has converged on a solution (e.g., the determined sensor configuration has not deviated more than a threshold amount over a recent period of time, such as an hour, <NUM> hours, <NUM> hours, one day), a set-up wizard session can be initiated with the user based on the determined sensor configuration. Such an example setup wizard can include one or more of the following questions. In a first example, the setup wizard can ask a question along the lines of, "When you come home, you seem to trip the following three sensors: <sensor_A>, <sensor_B>, and <sensor_C>, Might these be the garage door, the garage entry, and kitchen motion detectors?" In another example, the setup wizard can ask a question along the lines of, "These three sensors <sensor_X>, <sensor _Y>, and <sensor_Z> never seem to open, might they be windows?" If the user answers affirmatively in this case, the setup wizard can ask a question along the lines of "Could you please open and close all the windows that have sensors on them? And once you've done that, come back and name them in the same order. " In another example, the setup wizard can send a text to the homeowner's phone along the lines of, "You just tripped a sensor. What would you like to call that sensor?".

In some implementations, the system may be able to proceed without the setup wizard if the system determines a conclusion with a sufficiently high degree of confidence and/or may only perform specific portions of the setup wizard when irreconcilable inconsistencies are present in the sensor configuration after a threshold period of time (e.g., several days, one week).

Systems and services outside of security could see value in the information from security sensors. As such, it may not be necessary that the sensors be immediately, or even perfectly configured into the non-security system. It can be acceptable for the security sensors to be incorporated gradually over time, as the non-security system learns the security sensors. The system can figure out as much as it can in the background and, if appropriate, can ask a user (e.g., the homeowner) the smallest possible set of configuration information in finalizing the system configuration.

The following terms are applicable to this disclosure. "Observation" refers to listening to sensors and retaining information and/or characteristics of the sensors. For example, the system can perform observation of yet unknown sensors when the system is initially installed, such as during a learning period, and observation can continue on an ongoing basis after a sensor is known to the system. "Assessment" refers to making one or more conclusions about the sensors, using at least the information determined through observation and/or the use of a rule set. For example, assessment of a sensor can include concluding that the sensor is a garage door, or that the sensor is an interior door, or that the sensor is an infrequently-used window. "Enrollment" refers to making a sensor a unique, known, and qualified member of a set of sensors in the purview of the system. Enrollment includes associating, with the sensor, conclusions about the sensor itself, including the sensor's type, location, and other information. "Programming" refers to configuring the system on how to treat, respond, display, and report to signals from the sensor. For example, a garage door sensor can be programmed to act differently during time periods having patterns of use consistent with normal activities of the residents of a home, versus the garage door opening and staying open for a long period of time during a work day or late at night. "Utilization" refers to using the signals and information from the sensor in the normal mode of the system. For example, utilization of a normally-closed window sensor can indicate that normal use is a rare, if ever, occurrence, and a motion sensor in a kitchen occurs many times each day. Utilization can incorporate time-of-day, day-of-week, holiday, vacation, and other information.

<FIG> is a block diagram of an example environment <NUM> in which an application computing system <NUM> discovers sensors, for example, from a third-party system. As an example, the application computing system <NUM> (or system <NUM>) can be a security system that communicates with various wireless and hardwired sensors, including both security system sensors and other sensors. The system <NUM> can be installed at a home, business, or other location, and can immediately and over time discover wireless sensors <NUM> as well as operating characteristics of those wireless sensors <NUM> and hardwired sensors <NUM>. The wireless sensors <NUM> and hardwired sensors <NUM> can be part of a third party system, yet the system <NUM> can be programmed to passively detect and enroll the sensors <NUM>/<NUM> without participating in or completing a formal enrollment with the third party system. By enrolling existing sensors <NUM>/<NUM> from a third party system, the information available to the system <NUM> regarding the vicinity can be enhanced without having to install a separate sensor array for system <NUM>. The system <NUM> may generate and provide suggested configuration information for the sensors <NUM> and <NUM> to set up, use, and continually optimize the operation of the system <NUM> based on the sensors <NUM>/<NUM>.

The system <NUM> includes a wireless application discovery program <NUM> for discovering the wireless sensors <NUM> and the hardwired sensors <NUM>. For example, using information received by a wireless transceiver <NUM> from signals generated by the wireless sensors <NUM>, the wireless application discovery program <NUM> can make guesses as to the types and locations of the wireless sensors <NUM>. For example, the wireless sensors <NUM> can be "closed" in a sense that they may not use a protocol that is standardized among vendors in order to broadcast their identity or other wireless information used to communicate with the sensors <NUM>. The system <NUM> can detect the wireless sensors <NUM>, determine one or more sensor types that are likely for the sensors <NUM>, and can enroll the sensors <NUM> with the system <NUM> so that the system <NUM> can use the information generated by the sensors <NUM>.

The discovery process can include the use of a discovery rule set <NUM> that includes, among other things, rules that can be used by the wireless application discovery program <NUM> for determining the types and locations of the wireless sensors <NUM> and hardwired sensors <NUM>. For example, the rules can indicate that a time duration between an open and close of an alarm indicates that the sensor is, for example, very likely to be a garage door sensor. The rules can also include information that related groups of sensors, such as to identify an entry door and interior doors based on a time sequence of received signals from those sensors. The system <NUM> and the discovery rule set <NUM> can use any of a variety of techniques for determining likely sensor information (e.g., sensor type, protocol), such as scoring the sensors <NUM> along one or more dimensions when one or more rules from the discovery rule set <NUM> are satisfied by passively monitored wireless transmissions/behavior for the sensors <NUM>. For instance, the discovery rule set <NUM> can include rules that identify transmission scenarios that indicate that a sensor is likely to be a door sensor (e.g., open and close events occur close to each other in time), and can allocate points that correspond to how much the scenario indicates that the sensor is a door sensor. Once a threshold number of door sensor points have been achieved, the system <NUM> can determine that the sensor is likely to be a door sensor. Points may be allocated along dimensions corresponding to each type of sensor, as well as being allocated for other sensor characteristics that can be detected/inferred by the system <NUM>. The system <NUM> can be programmed to identify multiple potential sensor types for each sensor, when warranted based on points for the sensor types exceeding a threshold score. Other scoring and rule set evaluation techniques are also possible for the system <NUM>.

During the discovery process, the wireless application discovery program <NUM> can enroll identified sensors, such as in an enrolled sensors data store <NUM>. Enrollment information can include, for example, sensor identifiers (identifying each sensor to the system <NUM>), sensor types, sensor locations (absolute within a building and/or relative with regard to other sensors), and other information, as described below. Sensor configuration data <NUM> can include, for each enrolled sensor, configuration information such as communication protocols. Enrollment of the sensors <NUM> with the system <NUM> can cause the system <NUM> to persistently monitor for wireless transmissions from the sensors <NUM>, to process the wireless transmissions (e.g., determine what is happening in a building based on the transmission from the sensor), and to perform further actions based on the processed wireless transmissions (e.g., transmit information to a cloud based system, automatically perform an operation, transmit an alert/notification to the user). The discovery process can continue such that new wireless devices that are later installed in the home can also be observed and assessed for inclusion in any non-security or alternative security solutions.

A user interface device <NUM>, such as an interactive display provided for use by a user <NUM>, can display information and receive user inputs. For example, the user interface device <NUM> can display "best guess" information, informing the user <NUM> of the best guesses as to the types and locations of the sensors discovered by the system <NUM>. The user interface device <NUM> can display prompts, including through the wizard described above, that allows the user to provide input associated with sensors and/or confirm assumptions made by the system <NUM>. In some implementations, the user interface device <NUM> is part of the system <NUM>, such as a panel on a main controller of the system <NUM>, a remote user interface device that communicates with the system <NUM>, an app on a mobile device (e.g., a smartphone), or some other device.

<FIG> are conceptual diagrams of the example system <NUM> passively detecting and enrolling various preexisting wireless sensors <NUM>-<NUM> that are part of a security system a home <NUM>. Although these figures refer to a preexisting security system in the home <NUM>, the system <NUM> can be used to passively monitor for and enroll sensors from other types of systems within the home <NUM>. Additionally, the example security system is depicted as being configured to have the sensors <NUM>-<NUM> communicate over a closed wireless environment. The system <NUM> can be used to detect and enroll sensors both within and outside of closed wireless environments.

Referring to <FIG>, which generally depicts discovery of wireless sensors, the example and simplified home <NUM> includes four different rooms 152a-d that each include different sensors, such as motion sensors 156a-d, smoke/heat/air sensors 158a-b, window sensors 160a-c, and a door sensor <NUM>. Additional and/or alternative sensors are also possible. These sensors are part of a closed wireless communication environment in which the sensors <NUM>-<NUM> communicate observed information (e.g., door open/close, motion) wirelessly to the security system panel <NUM> using closed wireless communication, as indicated by step A (<NUM>). The closed wireless communication can be, for example, communication in which the sensors <NUM>-<NUM> transmit over a common wireless channel without broadcasting the SSID, the MAC address, and/or other details relevant for listeners outside closed wireless communication network (e.g., the sensors <NUM>-<NUM> and the security system panel <NUM>) to understand the context of the wireless transmissions. The sensors <NUM>-<NUM> and the security system panel <NUM> can be preconfigured to communicate with each other across a common closed wireless communication channel, such as being preprogrammed by the manufacturer and/or installer to communicate in this way.

The closed wireless communication (step A, <NUM>) can include, for example, a stream of wireless communications from the sensors <NUM>-<NUM> at various intervals of time depending on the type of sensor. For example, the motion sensors 156a-d may transmit wireless signals whenever motion is detected and, thus, may provide transmissions at irregular intervals of time. Similarly, the window and door sensors <NUM>-<NUM> may transmit wireless signals at regular intervals when a window door is open (e.g., transmit wireless signal every <NUM> second while the window/door is open) and a wireless signal whenever the door or window subsequently closes. The smoke/air sensors 158a-b can transmit wireless signals indicating when smoke and/or other potentially harmful air conditions are detected. The sensors <NUM>-<NUM> may additionally transmit status signals at regular intervals of time outside of particular events being detected (e.g., motion, door open/close events, smoke detected events) to confirm with the security system panel <NUM> that they are powered and functioning properly. The sensors <NUM>-<NUM> and the security system panel <NUM> can be preprogrammed to communicate using common wireless protocols and data encoding techniques so that the communication from the sensors <NUM>-<NUM> are properly received and interpreted by the security system panel <NUM>.

The application computing system <NUM> and its wireless transceiver <NUM> can be positioned within the home <NUM> to detect the closed wireless communications from the sensors <NUM>-<NUM> through passive monitoring of the wireless communication, as indicated by step B (<NUM>). The sensors <NUM>-<NUM>, their type, and their locations throughout the home <NUM> can be unknown to the system <NUM>. The passive wireless monitoring includes monitoring wireless transmissions across multiple different wireless channels, identifying wireless packets that are transmitted, and recording wireless packet transmissions, along with timestamps for their occurrence. These wireless packets are recorded over a period of time (e.g., <NUM> hours, one day, one week, one month) so as to provide a good sample size of wireless transmissions for the wireless environment from which information about the sensors <NUM>-<NUM> can be passively inferred (as opposed to being directly determined, such as through a direct/formal enrollment process with the sensors <NUM>-<NUM>).

As indicated by step C (<NUM>), the system <NUM> uses the detected wireless communications over a period of time to determine the likely type for the preexisting sensors <NUM>-<NUM> in the home <NUM>. The system <NUM> applies the discovery rule set <NUM> to the wireless communications to identify wireless communications that indicate the sensor type of the sensor transmitting the communication. Applying the rule set can include, for example, identifying particular wireless transmissions and/or patterns of wireless transmissions that indicate the sensor as being a particular type of sensor. Inferences made based on the discovery rule set <NUM> can be made in any of a variety of ways, such as applying tags to particular detected sensors based on particular rules being satisfied and/or using a scoring scheme in which scores are applied and aggregated for sensors across rules being satisfied, and then aggregated scores are evaluated against sensor-type thresholds to determine whether the sensor is likely a particular type. As discussed above, the sensor determination can include not only determining the likely type of sensor, but also other sensor attributes (e.g., perimeter sensor vs. interior sensor, sensor for main entrance vs. secondary entrance).

As indicated by step D (<NUM>), the system <NUM> can additionally identify the likely physical relationship among the preexisting sensors. For example, the system <NUM> can evaluate the relative timing of various wireless transmissions by the sensors to infer the physical proximity of sensors to each other. Using the recorded timestamps of detected wireless packets, the system <NUM> can identify various sensor events that occur in close proximity in time, which can be used to infer physical proximity. The repeated presence of particular patterns of sensor transmissions over time can increase the likelihood that two or more sensors are located near each other within the home <NUM>. For instance, when a user enters the home, the door sensor <NUM> will transmit an open door signal and, shortly thereafter, the motion sensor 156d in the room 152d into which a door monitored by the door sensor <NUM> enters will transmit a motion signal. The repeated occurrence of wireless signals being transmitted close in time by the door sensor <NUM> and the nearby motion sensor 156d can indicate that these two sensors are located near each other in the home <NUM>. The system <NUM> can identify temporal patterns of sensor transmissions within the home <NUM> during an observation period to infer the relative physical layout of sensors within the home <NUM>.

With the likely sensor types and the likely physical relationship (proximity) of the sensors identified, the system <NUM> can output these determinations, as indicated by step E (<NUM>). For example, the system <NUM> can output example likely sensor types <NUM> and example likely sensor relationships <NUM>. Although the likely sensor types <NUM> are indicated as being one likely sensor type for each detected sensor, sensors may have more than one detected likely sensor type. The sensor relationships <NUM> depict groupings of sensors that are determined to be physically near each other, along with other location/relationship information, such as some sensors being perimeter sensors and other sensors being interior sensors. The information <NUM>-<NUM> can be output, for example, to the user <NUM>.

Referring to <FIG>, which generally depicts passively enrolling and using preexisting sensors with the system <NUM>, the user may be prompted by the system <NUM> to perform various actions that can be used by the system <NUM> to further confirm various hypothesis about sensor type and/or location, as indicated by step F (<NUM>). For example, the system <NUM> can output a series of prompts for the user to open the front door and then to open the back door in the home <NUM>, and then can proceed to monitor the wireless communication (step A, <NUM>) to detect sensor activity that can be correlated to the locations requested by the system <NUM>. The system <NUM> may prompt the user to perform actions when, for example, there is not a sufficient amount of wireless sensor data to differentiate between multiple hypotheses regarding sensor type, location, and/or other sensor information. System <NUM> may not always provide prompts to the user.

Once the system <NUM> has obtained sufficient sensor information to arrive at a set of sensor hypotheses for the sensors <NUM>-<NUM> within the home <NUM>, the system <NUM> can prompt the user to confirm the inferred sensor types and/or locations, as indicated by step G (<NUM>). The user confirmation can cause the system <NUM> to passively enroll the sensors <NUM>-<NUM> from the closed wireless communication environment with the system <NUM>, as indicated by step H (<NUM>). Passive enrollment is different from active enrollment in that, with passive enrollment, the entire enrollment process has been through passive monitoring of wireless sensor transmissions. In contrast, during active enrollment, the sensor would enter an enrollment mode during which it at least identifies itself to the system/device enrolling the sensor and then confirms its enrollment by transmitting/outputting some sort of confirmation of enrollment (e.g., transmit a shared secret between the sensor and the enrolling device). However, with passive enrollment, the system <NUM> enrolls the sensors <NUM>-<NUM> without any of these steps being available to the system <NUM> - meaning no enrollment mode being entered for the sensors, no transmission of sensor identity (or other wireless sensor transmission information, such as transmission protocols, data encodings), and no confirmation of enrollment between the sensors <NUM>-<NUM> and the system <NUM>. Enrollment means that the system <NUM> knows the identify and parameters for the sensors <NUM>-<NUM> (e.g., sensor type, sensor proximity to other sensors), and continually monitors for and interprets wireless transmissions from the sensors <NUM>-<NUM> to detect events that are occurring within the home <NUM>, such as the door being open or closed, a person being located in various rooms 152a-d of the home <NUM>, and/or emergency situations (e.g., smoke detected in the home).

For example, after enrolling the sensors, the system <NUM> can use the enrollment information to continue to passively monitor wireless communications from the enrolled sensors, as indicated by step I (<NUM>). The system <NUM> can interpret the sensor communications using the enrollment parameters for the sensors, as indicated by step J (<NUM>). For example, once the system <NUM> has identified the sensors 156a-d as motion sensors, the system <NUM> can interpret subsequent detected wireless transmissions from theses sensors as motion-related activity within the home <NUM>. The information on the enrolled sensors that is used by the system <NUM> to perform steps I and J can be stored in <NUM> and <NUM>, as described above in <FIG>.

The system <NUM> can use and/or transmit home information (e.g., events within the home, such as doors being opened, people being present within particular rooms, emergency conditions) that has been determined from monitoring wireless transmissions from the enrolled sensors, as indicated by step K (<NUM>). For example, the system <NUM> may provide one or more services locally within the home <NUM>, such as home automation services, and can use the determined home information to automatically determine various home automation actions to perform, such as closing/opening automated windows, automatically turning lights on/off, automatically locking doors, and/or other home automation techniques. In another example, the system <NUM> may transmit information to a remote computer system <NUM> (e.g., cloud-based computer system) that obtains home information and provides services to the user <NUM>, such as home monitoring and/or security services to the user <NUM>. In some instances, the computer system <NUM> may be a hub of home information that makes the home information available to various systems and/or services that use the home information and that are authorized by the user <NUM>. So instead of each system/service needing to have its own sensor array within the home <NUM>, the computer system <NUM> and the system <NUM> can make the home information available to a broader collection of services and/or systems that can leverage the information. The home information can be provided to the computer system <NUM> in real time, which can permit services and/or systems using the information to have information on the current state of the home <NUM> and to provide appropriate corresponding processing. In another example, the system <NUM> can provide the home information directly to the user <NUM>, such as through a user interface that is part of the system <NUM> (e.g., the user interface device <NUM>) and/or by transmitting the home information to another user computing device (e.g., smartphone, wearable device).

Although the example depicted in <FIG> includes a single security system from which the system <NUM> is enrolling sensors, the system <NUM> can passively enroll sensors from multiple different systems within the home <NUM>. For example, the system <NUM> may passively enroll sensors from both a home security system and from a home automation system within the home <NUM>. Additionally, the system <NUM> can passively enroll sensors from both closed and open wireless communication networks. Although the system <NUM> is presented as being used in the home <NUM>, it can be used in other environments, such as businesses, multi-tenant units (e.g., condos, apartments), extended range sensor environments (e.g., indoor/outdoor sensor systems, such as at an entertainment park), and/or other environments.

Additionally, although the enrollment process (steps B-H, <NUM>-<NUM>) is depicted as being concluded after step H (<NUM>), it can continually be performed by the system <NUM> while using the enrolled sensor information (steps I-K, <NUM>-<NUM>). For example, while performing steps I-K the system <NUM> can continually perform steps B-H to identify new sensors and/or changes to the sensor arrangement within the home <NUM>, and to further refine/improve upon the enrolled sensor information.

The system <NUM> and the closed security system depicted in <FIG> can be different from each other and/or part of the same system. For example, the system <NUM> can run in parallel to and be separate from the closed security system. In another example, the system <NUM> can be part of the closed security system and the steps A-K can be part of the home wireless learning process for setting up a new closed security system. In another example, the system <NUM> can be the new security system for the home <NUM> and the closed security system can be an old system for the home <NUM> that no longer exists or is no longer active.

<FIG> is a flowchart of an example enrollment process <NUM> for enrolling sensors into the system <NUM>. In some implementations, the enrollment process <NUM> can be performed by the wireless application discovery program <NUM> in combination with other components of the system <NUM>. The enrollment process <NUM> can be similar to the steps B-H (<NUM>-<NUM>) described above with regard to <FIG>.

The sensor enrollment process is initiated by the system <NUM>, and the system <NUM> enters into "listen" mode (<NUM>). For example, once the system <NUM> is initially installed, the system <NUM> can listen to transmissions produced by the wireless sensors <NUM>, such as passively monitoring for wireless communications (step B, <NUM>).

The system <NUM> listens for any wireless sensor transmissions within a subset of frequencies, and the system <NUM> records those transmissions (<NUM>). For example, the system <NUM> can listen to frequencies known to the industry (and/or by the system <NUM>) to be transmission frequencies of sensors and/or other equipment that may be of interest to a security system.

An evaluation process is executed by the system (<NUM>). During the process, the wireless application discovery program <NUM>, for example, can apply a set of rules that are used to evaluate the recorded transmissions to determine a "best guess" as to the type of sensor(s) that made the recorded transmissions, relative physical proximity and/or locations of the sensor(s), and appropriate configurable options for the sensor(s). Example rules are discussed in more detail below. For example, the system <NUM> can identify likely types of preexisting sensors (step C, <NUM>) and identify likely physical relationships among the sensors (step D, <NUM>). The system <NUM> can then provide a proposal for how the various options for the wireless sensor <NUM> should be programmed. For example, based on frequencies of sensors, the rate of received transmissions, and a pattern of transmissions relative to transmissions by other sensors, the system <NUM> can determine that the sensor is likely of a certain type, and the system can propose options for use in programming the sensor.

"Best guess" information is presented on a display (<NUM>). The user interface device <NUM>, for example, can display, for use by the user <NUM>, guessed and proposed information, including the type of sensor that the system <NUM> believes that the wireless sensor <NUM> is and a proposed set of information as to how best configure the wireless sensor <NUM> in light of received transmissions and the evaluation process. The information exchange in this step and the next step can, for example, be part of a wireless sensor configuration wizard, as described above. For example, the system <NUM> can output information on the likely sensor types <NUM> and the likely physical sensor relationship <NUM> (step E, <NUM>).

Input is received from the user regarding sensors and proposed configurations (<NUM>). For example, the user <NUM> can confirm information presented by the user interface device <NUM> and/or provide additional information, such as to identify information that the system <NUM> was unable to figure out. The user <NUM> can be prompted to perform one or more actions within the home <NUM> (step F, <NUM>) and to provide confirmation of sensor information (step G, <NUM>).

Sensors are enrolled with appropriate configuration data (<NUM>). The system <NUM> can enroll the wireless sensor <NUM>, for example, using a combination of the best guess information, proposed configuration settings, and responses/inputs from the user. Enrolled sensors can be captured in an enrolled sensors data store <NUM>, e.g., resident in the system <NUM>. For example, the system <NUM> can passively enroll the sensors <NUM>-<NUM> from the home <NUM> (step H, <NUM>).

The evaluation process that is executed by the system <NUM> can use a set of rules that, for a wireless sensor <NUM> used in normal mode operation, are consistent with behaviors that can be used to guess the attributes of sensors. The rules can be included in the discovery rule set <NUM>, for example. Example attributes of sensors are introduced below with reference to <FIG>.

As discussed above, a set of rules is used in the wireless discovery process. Generally, the set of rules capture normal operation of sensors used in an environment, such as a home. From these rules, inferences can be made about sensors that produced various wireless transmissions that have not yet been "learned into" (enrolled) into the system <NUM>, and in addition, inferences can also be drawn about the configurable options for sensors already enrolled into the system <NUM>. For example, one category of sensors includes sensors that trip regularly in normal (e.g., daily/weekly) use, rather than operating as supervisory sensors. Rules associated with sensors that trip can include information for a time interrelationship between observed sensor signals and cellular/IP/phone signals. Rules can also be associated with general characteristics of a sensor, such as the sensor's signal strength, time-of-day of sensor signals, interrelationship between two or more sensor trips, lack of sensor trips, unused bits in sensor transmissions, and default values of certain bits in sensor transmissions. Rules associated with door/window sensors can include, for example, open/close patterns, loop numbers (e.g., for Honeywell sensors), F-bit behavior (e.g., for Interlogix sensors), and sensor trip frequencies (i.e., how often). Rules associated with motion (e.g., passive infrared sensor (PIR)) sensors can include, for example, open/close behaviors, relationships to other sensors (e.g., perimeter sensors), lengths of time from open to close (e.g., as some motions will send a restore/close an exact amount of time after open/alarm/trip), a time of sleep after first tripping (e.g., most all wireless motions go to sleep for three minutes before tripping again, and a lack of a close signal (e.g., many motions send only an alarm, and no restore). Rules associated with fobs can be associated, for example, with a transmit with no supervisory signals ever, and a power-up bit sent with every packet (e.g., in Honeywell sensors).

One category of sensors includes sensors that rarely trip and only send supervisories. This category of sensors can include, for example, windows and unused doors, smoke and carbon monoxide (CO) detectors, temperature and leak sensors, and glass breakage sensors. Information that can be used to guess things about infrequently/never alarming sensors includes, for example, default bit settings, fast supervision times (e.g., since some life safety sensors are compliant with the NFPA-<NUM> "supervisories every <NUM> seconds" requirement), a number of packets sent, a time between packets, and sensor identifier (ID) number characteristics (e.g., if a sensor ID does not comply with Honeywell's "Sparse ID" patent, then the sensor is an old Honeywell sensor).

<FIG> is a chart showing an example list of configurable sensor attributes <NUM> that can be used for sensors in the system. For example, the configurable sensor attributes <NUM> include attributes that can be guessed, concluded or selected for a wireless sensor <NUM> by the system <NUM>. The attributes can include, for example, a frequency of operation, protocol information (e.g., how the sensor communicates), manufacturer information, whether the sensor is encrypted or not, a device type of the sensor, whether the sensor is normally in a perimeter or interior location, a mounting location or the sensor, a vintage of manufacture, and typical system responses of the sensor. Example system responses of the sensor can include, for example, a name/type of the sensor (e.g., garage overhead, garage interior, front door, etc.), a group number (e.g., for GE/Interlogix sensors), system response settings, whether the sensor has a perimeter or interior response, a behavior to be made by the system in certain arming levels in response to that sensor (e.g., active in stay vs. away, or alarm response, including report code, siren/silent), and whether the sensor has an instant alarm, a delayed alarm, or is a follower (e.g., a secondary sensor after a primary sensor).

<FIG> is a table listing example sensor types <NUM> of sensors that can be part of the system. The sensor types <NUM> identify a sensor name/type <NUM> (e.g., door/window, etc.), a set of inputs <NUM>, and zone information <NUM>. The set of inputs <NUM> for a sensor can identify, for example, inputs such as external, motion, panic, tilt, smoke, flood, or other types of inputs. The zone information <NUM> can identify a preferred zone for a type of sensor, such as perimeter, exterior, entry/exit, glass, flood zone, or other default.

<FIG> is a table listing example sensor configuration data <NUM> of sensors that can be part of the system. The sensor configuration data <NUM> can include, for example, a sensor name <NUM>, a sensor description <NUM>, an alarm type <NUM>, a siren type <NUM>, active levels <NUM> (e.g., stay, night, delay), a time delay <NUM>, whether the sensor is supervised <NUM>, restoral ability <NUM> (e.g., yes or no), sensor ID on a current sensor (CS) report <NUM>, a report delay <NUM>, whether the sensor is bypassible <NUM>, whether the sensor has a chime when opened <NUM>, whether the sensor has a chime when closed <NUM>, whether the sensor is tamper resistant <NUM>, whether the sensor has a low battery indicator <NUM>, whether the sensor is a follower <NUM>, and whether the sensor has an auto bypass <NUM>.

<FIG> is a flowchart of an example ongoing sensor monitoring process <NUM> for enrolling sensors into the system <NUM>. In some implementations, the ongoing sensor monitoring process <NUM> can be performed by the wireless application discovery program <NUM> in combination with other components of the system <NUM>. The sensor monitoring process <NUM> can be similar to the steps H-K (<NUM>-<NUM>) described above with regard to <FIG>.

A group of sensors is enrolled with configuration data (<NUM>). For example, the system <NUM> can enroll a group of wireless sensors <NUM>, as described above, for instance, with regard to the sensors <NUM>-<NUM> can be passively enrolled with the system <NUM> (step H, <NUM>).

Sensor transmissions made by enrolled sensors are listened to and recorded (<NUM>). For example, using the wireless transceiver <NUM>, the system <NUM> can listen to the wireless sensors <NUM>, as described above, for instance, with regard to the system <NUM> passively monitoring for wireless communication from the sensors <NUM>-<NUM> (step I, <NUM>).

The system <NUM> listens for any wireless sensor transmissions within a subset of frequencies made by sensors not already enrolled into the system, and those transmissions are recorded (<NUM>). For example, the system <NUM> can concurrently perform step B (<NUM>) while performing steps I-K (<NUM>-<NUM>).

An evaluation process is executed, in which the set of rules is applied to evaluate the recorded transmissions to determine a better sensor configuration (<NUM>). For example, the wireless application discovery program <NUM> can use information about the transmissions received through wireless transceiver <NUM> to generate information as to how the wireless sensor <NUM> may be better configured within the system <NUM>. For instance, while performing steps I-K (<NUM>-<NUM>), the steps C-D (<NUM>-<NUM>) can be performed on previously enrolled sensors to determine whether improved/refined configurations for the sensors <NUM>-<NUM> are available.

For newly discovered sensors, steps <NUM>-<NUM> can be performed (<NUM>). A best guess is determined as to the type of sensor, and proposal is made for options (<NUM>). For example, the wireless application discovery program <NUM> can determine a best guess for the wireless sensor <NUM>, such as that the wireless sensor <NUM> is an entry door sensor. For instance, the system <NUM> can determine the likely type and/or physical arrangement of sensors <NUM>-<NUM> (steps C-D, <NUM>-<NUM>).

The best guess is presented on the user display (<NUM>). The user interface device <NUM>, for example, can present the best guess information to the user <NUM>, as indicated by step E (<NUM>) described above with regard to <FIG>.

User input is received (<NUM>). As an example, the user interface device <NUM> can receive, from the user <NUM>, inputs verifying the presented information and/or inputs providing corrected information for the wireless sensor <NUM>. For example, the user can be prompted to perform one or more actions, and to provide confirmation of the sensor configurations, as described above with regard to steps F-G (<NUM>-<NUM>).

The new sensor is enrolled with configuration data (<NUM>). For example, the wireless application discovery program <NUM> can enroll the wireless sensor <NUM>, as described above, for instance, with regard to step H (<NUM>).

For already enrolled sensors, steps <NUM>-<NUM> can be performed (<NUM>). A proposal for a better sensor configuration is presented in the user display (<NUM>).

User input is received (<NUM>). As an example, the user interface device <NUM> can receive, from the user <NUM>, inputs verifying the presented information and/or inputs providing corrected information for the already enrolled wireless sensor <NUM>.

The enrolled sensor is updated with the better configuration data (<NUM>). For example, the wireless application discovery program <NUM> can update the configuration information for the wireless sensor <NUM>.

<FIG> is a flowchart of an example alternate enrollment process <NUM> for enrolling sensors into the system <NUM>. In some implementations, the alternate enrollment process <NUM> can be performed by the wireless application discovery program <NUM> in combination with other components of the system <NUM>. The alternate enrollment process <NUM> differs from the enrollment process <NUM> in that preliminary information is requested of, and provided by, the user <NUM>.

The enrollment process is initiated (<NUM>). For example, once the system <NUM> is initially installed, and before the system <NUM> starts to listen to transmissions produced by the wireless sensors <NUM>, the system can hold off for preliminary information.

The user is prompted for input of preliminary information regarding sensors in the environment (<NUM>). The user interface device <NUM>, for example, can query the user <NUM> for preliminary information about the sensor, such as the sensor's type, location, and other information.

Preliminary input is received from the user (<NUM>). As an example, the user interface device <NUM> can receive, from the user <NUM>, inputs providing preliminary information for the wireless sensor <NUM>. For instance, referring to the example depicted in <FIG>, user input can be received with preliminary sensor information before step B (<NUM>) is performed. The preliminary sensor information can provide a starting point for steps C-D (<NUM>-<NUM>), which means that the system <NUM> may be able to perform step B (<NUM>) for a shorter period of time than it would be performed without the preliminary information.

In some implementations, at least some of the preliminary information input can be received from an information source, such as a local or remote data source accessible to the system <NUM>. For example, a database can contain information about the home's setup, such as in a do-it-yourself (DIY) situation. In this example, the homeowner or a customer service person may have entered some information about sensors or their requirements online, such as the fact that the security system is to control two doors and a garage door. However, it may not be known yet which exact sensor will go on which door, so incomplete information exists upon which the system can do more discovery. During discovery by the system, the system can access missing pieces of information from an online database or other source.

The enrollment process is performed (e.g., <FIG>), in this case also using the received preliminary information to formulate "best guesses" (<NUM>). For example, once the system <NUM> is initially installed and preliminary information is received form the user <NUM>, the system <NUM> can listen to transmissions produced by the wireless sensors <NUM>. Referring to the example depicted in <FIG>, the system <NUM> can perform steps C-D (<NUM>-<NUM>) using the preliminary information as a starting point and then refining/adding to that information based on the passively detected information.

The "best guess" information is presented on a display (<NUM>). The user interface device <NUM>, for example, can display, for use by the user <NUM>, guessed and proposed information, including the type of sensor that the system <NUM> believes that the wireless sensor <NUM> is and a proposed set of information as to how best configure the wireless sensor <NUM> in light of received transmissions and the evaluation process. The information exchange in this step and the next step can, for example, be part of a wireless sensor configuration wizard, as described above, for example, with regard to step E (<NUM>).

Input is received from the user regarding sensors and proposed configurations (<NUM>). For example, the user <NUM> can confirm information presented by the user interface device <NUM> and/or provide additional information, such as to identify information that the system <NUM> was unable to figure out. For instance, the system <NUM> can perform steps F-G (<NUM>-<NUM>).

Sensors are enrolled with appropriate configuration data (<NUM>). The system <NUM> can enroll the wireless sensor <NUM>, for example, using a combination of the best guess information, proposed configuration settings, and responses/inputs from the user. Enrolled sensors can be captured in an enrolled sensors data store <NUM>, e.g., resident in the system <NUM>. For example, the system <NUM> can perform step H (<NUM>), and subsequently use the enrolled information to perform steps I-K (<NUM>-<NUM>).

<FIG> is a block diagram of example computing devices <NUM>, <NUM> that may be used to implement the systems and methods described in this document, as either a client or as a server or plurality of servers. Computing device <NUM> is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. Computing device <NUM> is further intended to represent any other typically non-mobile devices, such as televisions or other electronic devices with one or more processers embedded therein or attached thereto. Computing device <NUM> is intended to represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smartphones, and other computing devices. The components shown here, their connections and relationships, and their functions, are meant to be examples only, and are not meant to limit implementations of the inventions described and/or claimed in this document.

Computing device <NUM> includes a processor <NUM>, memory <NUM>, a storage device <NUM>, a high-speed controller <NUM> connecting to memory <NUM> and high-speed expansion ports <NUM>, and a low-speed controller <NUM> connecting to low-speed bus <NUM> and storage device <NUM>. The processor <NUM> can process instructions for execution within the computing device <NUM>, including instructions stored in the memory <NUM> or on the storage device <NUM> to display graphical information for a GUI on an external input/output device, such as display <NUM> coupled to high-speed controller <NUM>.

The high-speed controller <NUM> manages bandwidth-intensive operations for the computing device <NUM>, while the low-speed controller <NUM> manages lower bandwidth-intensive operations. Such allocation of duties is an example only. In the implementation, low-speed controller <NUM> is coupled to storage device <NUM> and low-speed bus <NUM>. The low-speed bus <NUM> (e.g., a low-speed expansion port), which may include various communication ports (e.g., USB, Bluetooth®, Ethernet, wireless Ethernet), may be coupled to one or more input/output devices, such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter.

The computing device <NUM> may be implemented in a number of different forms and/or virtualized, as shown in the figure. Alternatively, components from computing device <NUM> may be combined with other components in a mobile device (not shown), such as computing device <NUM>. Each of such devices may contain one or more of computing devices <NUM>, <NUM>, and an entire system may be made up of multiple computing devices <NUM>, <NUM> communicating with each other.

The computing device <NUM> may also be provided with a storage device, such as a micro-drive or other device, to provide additional storage.

The processor <NUM> can process instructions for execution within the computing device <NUM>, including instructions stored in the memory <NUM>. The processor may also include separate analog and digital processors. The processor may provide, for example, for coordination of the other components of the computing device <NUM>, such as control of user interfaces, applications run by computing device <NUM>, and wireless communication by computing device <NUM>.

The display <NUM> may be, for example, a TFT LCD display or an OLED display, or other appropriate display technology. In addition, an external interface <NUM> may be provided in communication with processor <NUM>, so as to enable near area communication of computing device <NUM> with other devices. External interface <NUM> may provide, for example, for wired communication (e.g., via a docking procedure) or for wireless communication (e.g., via Bluetooth® or other such technologies).

Expansion memory <NUM> may also be provided and connected to computing device <NUM> through expansion interface <NUM>, which may include, for example, a subscriber identification module (SIM) card interface. Such expansion memory <NUM> may provide extra storage space for computing device <NUM>, or may also store applications or other information for computing device <NUM>. Thus, for example, expansion memory <NUM> may be provided as a security module for computing device <NUM>, and may be programmed with instructions that permit secure use of computing device <NUM>. In addition, secure applications may be provided via the SIM cards, along with additional information, such as placing identifying information on the SIM card in a non-hackable manner.

The memory may include for example, flash memory and/or MRAM memory, as discussed below. The information carrier is a computer- or machine-readable medium, such as the memory <NUM>, expansion memory <NUM>, or memory on processor <NUM>.

Computing device <NUM> may communicate wirelessly through communication interface <NUM>, which may include digital signal processing circuitry where necessary. Such communication may occur, for example, through transceiver <NUM> (e.g., a radio-frequency transceiver). In addition, short-range communication may occur, such as using a Bluetooth®, WiFi, or other such transceiver (not shown). In addition, GPS receiver module <NUM> may provide additional wireless data to computing device <NUM>, which may be used as appropriate by applications running on computing device <NUM>.

Computing device <NUM> may also communicate audibly using audio codec <NUM>, which may receive spoken information from a user and convert it to usable digital information. Audio codec <NUM> may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset of computing device <NUM>. Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating on computing device <NUM>.

It may also be implemented as part of a smartphone <NUM>, personal digital assistant, or other mobile device.

Other programming paradigms can be used, e.g., functional programming, logical programming, or other programming.

While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of features specific to particular implementations of particular inventions. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable sub-combination.

Claim 1:
A method comprising:
assessing wireless sensors (<NUM>, <NUM>, <NUM>, <NUM>) in the vicinity of a wireless security system, wherein assessing the wireless sensors (<NUM>, <NUM>, <NUM>, <NUM>) comprises
operating (<NUM>) the wireless security system in a listen mode to receive and record, over a period of time,
wireless packet transmissions produced by one or more wireless sensors producing wireless packet transmissions in the vicinity of the wireless security system, wherein the wireless security system listens for any wireless packet transmissions produced by the wireless sensors within a subset of frequencies (<NUM>), and
timestamps of the occurrence of the wireless packet transmissions,
evaluating (<NUM>), by the wireless security system, the recorded wireless packet transmissions and the timestamps using a rule set (<NUM>) that embodies normal operating characteristics of various types of wireless sensors in an operating environment, and
generating (<NUM>, <NUM>), by the wireless security system, a conclusion regarding at least one attribute of at least one wireless sensor that produced the recorded wireless packet transmissions, wherein the at least one wireless sensor is not currently enrolled into the wireless security system and wherein the generated conclusion is a probable assessment of a type of sensor for the at least one wireless sensor; and
using (<NUM>), by the wireless security system, the generated conclusion in a process to enroll the at least one wireless sensor into the wireless security system, wherein enrolling the at least one wireless sensor includes associating the generated conclusion regarding the at least one attribute of the at least one wireless sensor with the at least one wireless sensor.