System and method for smoking detection
The system uses calibrated VOC sensors and machine learning to accurately detect smoking by adjusting for indoor air quality variations and sensor sensitivity, enhancing proactive maintenance in dwellings.
Patent Information
- Application Number
- PCT/US2025/037748
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-07-16
- Filing Date
- 2025-07-15
- Publication Date
- 2026-01-22
AI Technical Summary
Accurate detection of smoking within a dwelling is challenging due to varying baseline indoor air quality and sensor sensitivity changes over time, leading to false positives or negatives.
A system and method using volatile organic compound (VOC) sensors with machine learning classifiers, calibrated by clean air thresholds and scaled resistance values, to determine the presence of recreational smoking.
Enhances the accuracy of smoking detection by accounting for varying air quality and sensor aging, reducing false alerts and improving proactive maintenance capabilities.
Smart Images

Figure US2025037748_22012026_PF_FP_ABST
Abstract
Description
System and Method for Smoking DetectionCross Reference
[0001] The present application is a non-provisional filing of, and claims benefit under 35 U.S.C. § 119(e) from, U.S. Provisional Patent Application No. 63 / 672,007, filed July 16, 2024, entitled “System and Method for Smoking Detection,” which is incorporated herein by reference in its entirety.Background
[0002] The present disclosure relates to the use of sensors and to the detection of smoking, particularly within a dwelling. Accurate detection of smoking within a dwelling is difficult in part because baseline indoor air quality can vary widely between different dwellings and even between different rooms within the same dwelling. Such differences in air quality and the concentration of different gases in the air are a confounding factor in attempts to determine whether there is currently smoking in a dwelling. In a room with consistently low air quality (e.g. due to the operation of various appliances, space heaters, fireplaces, and the like), a sensor that is intended to detect smoking is likely to provide false positives. In addition, sensors intended to detect the presence of smoking are subject to aging, becoming more or less sensitive to changing air quality conditions over time, potentially leading to false positive or false negative reports.Summary
[0003] A method according to some embodiments comprises: obtaining a plurality of sets of volatile organic compound (VOC) sensor readings, each set including a time series of resistance values, each resistance value corresponding to a step in a temperature profile; determining at least a first clean air threshold based on the sets of VOC sensor readings; for at least a first set of VOC sensor readings, scaling at least one of the resistance values in the time series of resistance values based at least in part on the first clean air threshold to obtain a first scaled time series of resistance values; and determining whether to issue an air quality alert based on at least the first scaled time series of resistance values.
[0004] A system according to some embodiments comprises one or more processors, the system being configured to perform at least: obtaining a plurality of sets of volatile organic compound (VOC) sensor readings, each set including a time series of resistance values, each resistance value corresponding to a step in atemperature profile; determining at least a first clean air threshold based on the sets of VOC sensor readings; for at least a first set of VOC sensor readings, scaling at least one of the resistance values in the time series of resistance values based at least in part on the first clean air threshold to obtain a first scaled time series of resistance values; and determining whether to issue an air quality alert based on at least the first scaled time series of resistance values.
[0005] A system according to some embodiments comprises one or more processors configured to perform at least: obtaining a plurality of sets of volatile organic compound (VOC) sensor readings, each set including a time series of resistance values, each resistance value corresponding to a step in a temperature profile; providing at least a first one of the time series of resistance values as a vector input to a machine learning classifier trained to classify inputs associated with recreational smoking and inputs not associated with recreational smoking; and determining whether to issue an alert of recreational smoking based at least in part on an output of the machine learning classifier.
[0006] A method according to some embodiments comprises: obtaining a time series of volatile organic compound (VOC) sensor readings; selecting from the time series a subset of sensor readings representing clean air; calibrating the VOC sensor readings based on the subset; obtaining environmental sensor data; and determining whether to issue an alert of recreational smoking based on the VOC sensor readings and the environmental sensor data.
[0007] A system according to some embodiments comprises one or more processors configured to perform: obtaining a time series of volatile organic compound (VOC) sensor readings; selecting from the time series a subset of sensor readings representing clean air; calibrating the VOC sensor readings based on the subset; obtaining environmental sensor data; and determining whether to issue an alert of recreational smoking based on the VOC sensor readings and the environmental sensor data.Brief Description of the Drawings
[0008] FIGs. 1 A-1 F illustrate different views of a sensor node used in some embodiments.
[0009] FIG. 2 illustrates a graphic element that may be used to display data and inferences collected using systems according to some embodiments.
[0010] FIG. 3 schematically illustrates examples of features implemented in a sensor node in some embodiments.
[0011] FIG. 4 schematically illustrates examples of features implemented in an example hub device in some embodiments.
[0012] FIG. 5 is a functional block diagram of a data processing pipeline according to some embodiments.
[0013] FIG. 6 is a functional block diagram of a cloud service architecture used in some embodiments.
[0014] FIG. 7 illustrates the functional architecture of an example embodiment of a sensor node in some embodiments.
[0015] FIG. 8 illustrates the functional architecture of an example embodiment of a hub node in some embodiments.
[0016] FIG. 9 is a functional block diagram of an example classifier pipeline according to some embodiments.
[0017] FIG. 10 is another functional block diagram of an example classifier pipeline according to some embodiments.
[0018] FIG. 11 is a schematic block diagram illustrating features of a cloud service used in some embodiments.
[0019] FIG. 12 schematically illustrates a system architecture used in some embodiments.
[0020] FIG. 13 is a schematic functional block diagram illustrating components of a smoking detection system according to some embodiments.
[0021] FIG. 14 is a graph illustrating a temperature profile of a metal oxide (MOX) volatile organic compound (VOC) sensor that may be used in some embodiments.
[0022] FIG. 15 is a graph illustrating an alternative temperature profile of a MOX VOC sensor that may be used in some embodiments.
[0023] FIG. 16 is a flow diagram of a method of providing air quality alerts such as smoking detection according to an example embodiment.
[0024] FIG. 17 is a flow diagram of a method of providing air quality alerts such as smoking detection according to another example embodiment.
[0025] FIG. 18 is an example of a time series of raw confidence scores provided by a machine learning classifier according to an example embodiment. Each dot represents the confidence output based on a vector input of (possibly scaled) resistance values from a single temperature profile.
[0026] FIG. 19 is an example of a time series of smoothed confidence scores obtained by applying a smoothing algorithm to the raw confidence scores of FIG. 18.
[0027] FIG. 20 is a functional block diagram of an example classifier pipeline for smoking detection according to some embodiments.Detailed Description
[0028] Property maintenance is a big problem and largely reactive today. Proactive maintenance is less expensive and less disruptive than reactive maintenance. Example embodiments operate to make proactive maintenance possible by, for example, providing an advance alert of maintenance items that may benefit from attention based on processing the sensor data and historical trends in the system. Example systems make use of remote sensing, rather than sensing directly attached to a particular appliance or home component. This allows a sensing to be done on a whole section or space in a residence allowing for holistic scanning of the home across various types of problems and affected appliances. Example systems and methods may be used in any type of residential structure (e.g. homes, apartments, condos, townhomes). Some embodiments may also be useful in commercial buildings.
[0029] One type of problem that can arise withing a dwelling or other property is the presence of unwanted smoking by occupants or guests. Unwanted smoking can damage property by leaving stains, burn marks, and / or odors and by increasing the chances of a fire.
[0030] Using machine learning applied to sensor data, example embodiments operate to identify HVAC, plumbing, appliance, environmental, mold, smoking, and other problems. Example embodiments may provide a remote preventative maintenance platform for single-family homes and apartment buildings that provides alerts of actual or potential problems. Example embodiments may further be used to monitor energy and water use.
[0031] Example embodiments operate with the use of remote, virtual monitoring to detect hidden issues remotely throughout a property. Example embodiments use predictive intelligence to identify potential breakdowns at inopportune times and allow for targeted, proactive maintenance that may extend the life of major systems and reduce the overall cost of units. Some embodiments provide monitoring and reporting on every major home system. Monitoring may be performed remotely to minimize disruption to the property or tenants. Example embodiments combine one or more sensor nodes, each sensor node including a plurality of different sensor types, to collect data. An artificial intelligence system (e.g. a neural network) may be used to process the collected data to provide preventative & predictive capabilities.Example Architecture.
[0032] In some embodiments, one or more sensor nodes are disposed in a dwelling. The sensor nodes may be used to detect features relating to one or more of the following features: plumbing and water conditions, electrical system conditions, heating and cooling conditions, temperature and humidity conditions, indoor airquality conditions, CO and other gas conditions, noise and sound conditions, light levels and colors, vibration and tilt, and / or appliance performance. Through the detection of such conditions, potential issues such as one or more of the following may be identified: worn or defective air conditioning compressor, dirty air filter, pests such as mice, frozen pipes, leaking or faulty toilets, mold growth, leaking faucets, poor insulation, and / or a leaking roof.
[0033] In an example system architecture, a plurality of sensor nodes are disposed in a dwelling, these sensors communicate with a hub node, and the hub node communicates with one or more networked services. The architecture is discussed in greater detail with respect to FIG. 12, below. The architecture allows for installation in a wide range or properties including Multi-Dwelling Units (MDUs or apartment buildings). An example of an interface 400 for monitoring conditions and alerts in different apartments is illustrated in FIG. 2. Such an interface may be accessible through, for example, a Web interface or through an application for a computer or mobile device, such as a tablet. The interface may allow for alerts to be searched, filtered, and sorted according to user options. For example, alerts may be filtered by alert type or sorted by alert severity.
[0034] Components of an example system include a sensor node (which may be referred to as a “dNode”), such as sensor node 100 (FIGs. 1A-1 F), with a plurality of different sensor modalities. The senor modalities may allow for collection of data regarding HVAC systems, appliance activity, plumbing conditions, structural monitoring, and pest detection. A hub device (which may be referred to as a “dHub”), such as device 3604 (FIG. 12) may be configured to process data from one or more sensor nodes in a dwelling. The hub device may be configured to perform operations such as sensor orchestration, event detection, threat analysis, data collection, and Al processing. The hub device may further provide a connection to cloud services, for example through a WiFi, Ethernet, or other network connection, which may be made through a household router or mesh network. In some embodiments, roughly one sensor node is installed for every 300 square feet of home area. In some embodiments, particularly in structures with multiple dwelling units, the hub may be a virtual component in a physical server that covers multiple residences at once. In example embodiments, no professional installation of the hub or sensor nodes is required.
[0035] Example systems described herein can be used to monitor the effects on the ambient environment of various conditions in the home and then infer from the set and relative timing of those ambient effects what the state of the home is. Examples of systems that may be monitored include HVAC, plumbing & water, electrical and indoor environment monitoring. Example systems include software to collect and process the sensor data. Some embodiments further include a web application to implement a user interface or user experience for the user. This web app may also be implemented as a mobile app.
[0036] In some embodiments, an example system uses its sensor data to monitor the indoor environment. Such embodiments may operate to comfort levels, air quality, noise levels, carbon monoxide, and potential mold conditions. The system may monitor environmental conditions to increase tenant comfort, health and safety. In some embodiments, the system monitors temperature, humidity, indoor air quality (IAQ), noise and light levels. In some embodiments, the system monitors carbon monoxide (CO) and / or identifies mold risk.
[0037] In example embodiments, the system operates using Al software that is trained at least in part using real-world data collected after installation. In addition, software of the sensor node and hub device may be updated after installation. In some embodiments, a web-based application provides a management dashboard and alerting system.
[0038] Some embodiments allow for continuous improvement over time. For example, the system may learn and adapt to its environment, improving home monitoring ability, providing more valuable insights, and helping avoid catastrophic issues. Regular software updates may be used to add features and expand preventative maintenance capabilities.
[0039] As an example, sensor data collected in some embodiments includes one or more of the following types of sensor data. Environmental sensor data may be collected such as temperature, humidity, external weather, light and color, indoor air quality, carbon monoxide levels, VOC levels associated with natural gas, VOC levels associated with termite activity, and VOC levels associated with mold growth. Vibration sensor data such as acoustic data, ultrasound data, and low frequency vibrations may be detected. Electrical sensor data such as voltage levels and voltage surges may be detected.
[0040] In some embodiments, a software platform provides one or more of the following features. A user experience (UX) platform may provide a web-based interface, an installation user interface, a user management interface, email and text notifications, historical charting, operational statistics, threshold-based alerting, appliance inventory, appliance failure risk and recall alerts, trend-based alerting, mobile app user interface, API integrations, maintenance logistics, and contractor links. A cloud platform may provide production cloud deployment, statistical analysis of operational faults and anomalies over time, and appliance database integration. A hardware platform may provide sensor node and hub node equipment with appropriate regulatory certifications. Cellular service connectivity may also be provided.
[0041] Example embodiments make use of a remote-sensing approach. Compared to products with systemspecific sensors, example embodiments can monitor more systems simultaneously. Some embodiments do not require a direct connection to each monitored system or apparatus.
[0042] Compared to products with general-purpose sensors, example embodiments use a more sophisticated multi-modal approach that includes one or more (or all) of electrical, light, humidity, temperature, gas, motion, and acoustic sensors. Some embodiments may collect additional information by, for example, monitoring the RF environment, collecting data from a network (e.g. through a cloud service) or through data retrieved by and exchanged among a plurality of sensor nodes. In some embodiments, analysis is performed on site versus the cloud, providing for efficient bandwidth usage but also increased security and privacy. Example architectures support an Al-based approach which allows for the gathering of large amounts of information providing more specific diagnostic notifications. In some embodiments, collected data is used to improve the accuracy of sensor data and of determinations made from data analysis, e.g. through training of artificial intelligence (Al) classifiers.Occupant Detection.
[0043] In some embodiments, sensor data collected from one or more sensors as described herein may be used to detect occupancy of a dwelling. For example, sensor detection of changes in lighting conditions, sound, and electrical transients may be used to detect the presence of an occupant. In some embodiments, a dwelling associated with the sensor node may be categorized (e.g. in a database) as vacant. In some such embodiments, in response to detection of occupancy in a dwelling that is categorized as vacant, an alert may be sent to indicate the presence of a possible trespasser or squatter. As discussed below, the presence or absence of a detected occupant may also be used to corroborate detection of the presence or absence of recreational smoking.Functional Architecture.
[0044] FIG. 3 schematically illustrates examples of features implemented in a sensor node in some embodiments. Software-implemented features in this example include an Al preprocessing module 2202 to prepare sensor data for use by an Al classifier, a sensor data capture module 2204 for managing collection of sensor data, an over the air (OTA) update module for receiving and implementing software updates, a hub interface module 2208 to manage communications with a hub node, a secure store 2209 to securely store collected sensor data, and an operating system 2210. Hardware features in this example include a CPU 2212, one or more radios 2214 for WiFi and / or Bluetooth communication, power supply hardware such as AC connections and rechargeable battery power, sensors 2218 such as a humidity sensor, a VOC sensor, a microphone, a light sensor, a temperature sensor, and an accelerometer, and accessories such as a nightlight, a status LED, and a speaker.
[0045] FIG. 4 schematically illustrates examples of features implemented in an example hub device in some embodiments. Such features may include a sensor node interface components such as a sensor data retrieval module 2402, a sensor configuration module 2404, a sensor update module 2406 for providing OTA updates to the sensor nodes, and a sensor interface module 2408 for managing communications with the sensor nodes. The hub device may include Al engine components such as a sample select module 2410, a threat notification module 2412, a state machine module 2414, a trigger fusion module 2415, an Al engine classifier module 2416, and an Al model update module 2418. The hub node may further include cloud interface components such as a notification module 2420, a sample upload module 2422, a cloud provisioning module 2424, an OTA update module 2426, a cloud update module 2428, and a cloud interface module 2430. The hub may further include hardware platform components such as a secure store 2432, an operating system 2434, radios 2436 (such as WiFi and / or cellular data), a power supply 2438, and wired data connections 2440, such as an Ethernet connection.
[0046] A functional flow diagram illustrating processing of sensor data according to some embodiments is provided in FIG. 5. In some embodiments, at least some of the operations illustrated in FIG. 5 may be implemented on a hub device. In some embodiments, at least some of the operations of FIG. 5 are performed on a sensor node. In some embodiments, at least some of the operations of FIG. 5 are performed by a cloud service. Different embodiments may divide the operations among different hardware components in different ways.
[0047] As illustrated in FIG. 5, one or more physical sensors 702 provide sensor data to one or more of a plurality of modules, such as a threshold module 704, a parametric module 706, a statistics module 708, and a feature extraction module 710. The output of the threshold module 704, parametric module 706, and statistics module 708 may be provided directly to an artificial intelligence engine 712. An output of the feature extraction module 710 may be further processed, for example, by an anomaly check module 714 before being provided to the Al engine 712. An SNR module 716 may also process the data. The data may further be provided to a fusion module 718, which performs sensor fusion to combine the output of physical sensor 702 with the outputs of other physical sensors and / or with one or more virtual sensors such as virtual sensor 720.
[0048] The output of sensor fusion module 718 may be provided to an anomaly guard module 722, which in turn provides its output to a classification regression module 724. The output of the classification regression module 724 may in turn be provided to a further fusion module 726.
[0049] The output of the fusion module 726 is provided to a finite state machine I hidden Markov model module 728. The output of the a finite state machine I hidden Markov model module 728 may in turn be provided to a further fusion model 730, whose output may be provided to the Al engine 712. An output of the Alengine 712 may be used in one or more of several ways. The output may be used as input to one or more virtual sensors 720. The output may be provided to a module 732 for formatting, storing, and reporting the output. A notification filter 734 may also process the output and log any resulting notifications using module 736. In some embodiments, the input or output of one or more of the modules of FIG. 5 is identified and selected for offline analysis to allow for assessment and / or improvement of the data processing methods and Al models used by the system.
[0050] An example of a cloud service architecture used in some embodiments is provided in FIG. 6. A plurality of hub nodes, such as nodes 802a, 802b, 802c, are in communication with the cloud service over a network 804. The hub nodes may be installed in different dwellings. A hub node interface 806 is provided to manage communications with the hub nodes. Raw and / or processed sensor data from the hub nodes may be provided to storage 808 for offline Al processing. Messages received from the hub nodes may be processed by an incoming message processing engine 810. Time series data representing, for example, operational or fault conditions of domestic fixtures, may be stored by database 812. Information in the database may be made accessible to authorized users through, for example, a mobile application interface 816, which allows users of mobile devices (e.g. 820a, 820b) to monitor home status data over a network 818. The cloud service architecture may further collect information provided by outside sources, such as API suppliers 822a, 822b. Such information may be collected by an API interface 824 of the cloud service and may be processed by an outgoing message processing engine 826.Hardware Architecture.
[0051] As illustrated in FIGs. 1A-1 F, a device 100 includes a housing 108 having a rear surface 104. A set of power plug prongs 106 extends from the rear surface of the housing. Although the illustrated prongs are those compatible with standard North American outlets, other configurations may alternatively be used.
[0052] The functional architecture of an example embodiment of a sensor node is illustrated in FIG. 7. In the embodiment of FIG. 7, a main printed circuit board assembly (PCBA) 2902 includes a microcontroller unit 2904 with associated memory, sensors such as a microphone 2906, a CO sensor 2908, an air pressure sensor 2910, and an accelerometer 2912. The main PCBA may further include a status LED 2914, a nightlight 2916, a speaker 2918, and componentry 2920 for use and charging of a backup battery. A power PCBA 2922 in this example includes a microcontroller 2924 with associated memory, circuitry 2926 for voltage sensing, and circuitry 2928 for AC-DC conversion which may be used to power the sensor node. In addition, this embodiment includes a first flex circuit 2930 with temperature and humidity sensors, a second flex circuit 2932 with an ultrasound microphone and an ambient light sensor (ALS), and a third flex circuit 2934 with a gas (VOC) sensor. The arrangement of components on PCBs and flex circuits may be different in differentembodiments. For example, the use of flex circuits is not critical to the functionality of the product. Similar functionality is implemented in some embodiments using component connections implemented other ways.
[0053] FIG. 8 is a block diagram of a hub device according to some embodiments. In the example of FIG. 8, the hub device is configured using the Intel NUC architecture, although alternative architectures may also be used. The hub device includes a CPU 3102 (e.g. a Core i7, 2.7-4.5GHz), DDR (double data rate) RAM memory 3104 (e.g. 8MB), a SATA (Serial Advanced Technology Attachment) drive 3106 (e.g. a 256GB solid state drive), a wireless interface 3108 (e.g. 802.11 ac WiFi and / or Bluetooth 5), flash memory 3110, input / output connectors 3112 (e.g. 1000Base-T gigabit ethernet and / or USB 3.1), and an SD (Secure Digital) card interface 3114. The hub device may further be equipped with a trusted platform module, such as TPM2.0 key management.Processing of Sensor Data.
[0054] Various conditions and events may be detected in some embodiments using data collected by one or more sensors of a sensor node. As an example, detection of one or more of the following sounds may indicate that a toilet is flushing: composite sound of toilet flushing, composite ultrasound of toilet flushing, toilet handle press and release sound, water flush initialize sound, rapid water exit from bowl sound, toilet flushing vibrations, sound from fill valve hiss, ultrasound from fill valve hiss, water resonance (constant thumping), and / or sound of clogged toilet. Detection of one or more of the following may indicate that a toilet is filling: sound of bowl and tank refilling with water, sound of flapper valve closing, sound of water cutoff, vibrations of toilet filling, sound of toilet water running, relative humidity increase near toilet. A dripping sound in the toilet may indicate that the toilet is idle. Other sounds that may indicate events of interest with regard to a toilet may include the sound of a lid slamming downward onto the seat or upward onto the tank, or the sound of dripping on the floor. Detection of such events and conditions may be combined into composite data, such as the time the toilet spends in the flushing state, the detection of a broken chain based on two or more handle presses and releases in succession, time spent in the filling state, and average number of flushes per unit time.
[0055] Similarly, activity or conditions of a sink may be identified through detection of one or more of the following sounds: drip sound from faucet into empty bowl, drip sound from handle, drip sound into water in bowl, drip sound from sink fixtures or pipes, sink water running and striking bowl sounds, sink water running and bowl strike changed by usage, sound of sink handle being turned, and the sound of water moving through pipes toward the sink.
[0056] Sensor inputs that may be used to determine conditions and events in a dwelling may include one or more of the following: sound, temperature, humidity, CO, light, electricity, motion, and gases.
[0057] In some embodiments, multi-layered sensor processing is performed. The processing may include one or more of a universal acoustic detector, multi-modal sensor fusion, and anomaly detection.
[0058] A functional diagram of an example classifier pipeline is illustrated in FIG. 9. In different embodiments, the operations illustrated in FIG. 9 may be distributed among different hardware components in different ways. For example, some operations may be performed by a sensor device, and some operations may be performed by a hub device. In some embodiments, some operations are performed by a cloud service. As illustrated in FIG. 9, audio data interface 1102 obtains audio data (e.g. data representing sounds present in an area of a dwelling). Audio data may include signals representing audible vibrations, such as sounds between around 20Hz and 20kHz. In some embodiments, the audio data is obtained in a series of one-second audio slices. A preprocessor 1106 processes the audio data, for example into 10-second sliding windows of spectrogram data. The sliding windows may be processed by a spectrogram conditioning module 1108 and by a feature extraction module 1110. The output of the feature extraction module 1110 may be provided to a random forest acoustic classifier 1112. The output of conditioning module 1108 may be provided to another acoustic classifier 1114, which may be a convolutional neural network (CNN) classifier operating on the spectrogram to determine a confidence level representing whether the audio signal represented by the spectrogram has a sound characteristic associated with an operating or failure state of a domestic fixture.
[0059] The output of one or more of the acoustic classifiers 1112 and 1114 may be provided to a layer-one finite state machine 1116 to stabilize the output of the classifiers. The layer-one finite state machine may have a first state representing an indication that the audio data does have the sound characteristic of interest and a second state representing an indication that the audio data does not have that sound characteristic. It may be the case that the raw output of the classifiers fluctuates rapidly as a result of confounding signals (e.g. extraneous noises in the dwelling). In some embodiments, the layer-one finite state machine 1116 stabilizes the classifier outputs by only changing state based on, for example, a time average of confidence levels or other function of a plurality of confidence levels. A different layer-one state machine may be provided for each of a plurality of sound characteristics of interest. The output of layer-one finite state machine 1116 may be referred to as a raw system state.
[0060] A sensor data interface 1104 obtains non-audio sensor data from one or more sensor nodes. The non-audio sensor data may include, for example, temperature data, humidity data, light data, accelerometer data, ultrasound data, VOC data, and / or electrical data. The sensor data may be provided to a layer-one / layer- two analysis module 1118. Layer one and layer two analysis is described in further detail below and includes such analysis as applying thresholds and / or physics-based models to one or more sensor parameters. The non-audio sensor data may also be provided to one or more classifier modules 1120. The output of theclassifier modules 1120 and the layer-one / layer-two analysis module 1118 may be stabilized using a layer-one finite state machine 1122.
[0061] At least one layer-two finite state machine 1124 may also be provided. The layer-two finite state machine may have a plurality of states that represent corresponding states of a particular domestic fixture. For example, a layer-two finite state machine corresponding to a toilet may have states of idle, flushing, or tank refiling. A layer-two finite state machine corresponding to an HVAC system may have states of HVAC on and HVAC off. The layer-two finite state machine 1124 may receive inputs from some or all of layer one finite state machines 1116 and 1122 and layer-one / layer-two analysis module 1118. Based on the inputs, layer-two finite state machine 1124 determines whether to transition from a first state representing a first corresponding state of a domestic fixture to a second state representing a second corresponding state of the domestic fixture. The state represented by the state of layer-two finite state machine 1124 may be referred to as a refined state.
[0062] The output of the layer-two finite state machine 1124 may be provided to a sensor fusion module 1126, which may be referred to as a late sensor fusion module because it operates on data that has already been processed by one or more classifiers and / or finite state machines. The sensor fusion module 1126 operates to prevent false positives and / or false negatives by comparing the output of the layer-two finite state machine with other sensor data to generate a corrected state. For example, to prevent false positives, the sensor fusion module 1126 may determine that a domestic fixture is in a particular operating or failure state only if the sensor data and the output of the layer-two finite state machine are both consistent with the domestic fixture being in that state. To prevent false negatives, the sensor fusion module 1126 may determine that a domestic fixture is in a particular operating or failure state so long as either the sensor data or the output of the layer-two finite state machine is consistent with the domestic fixture being in that state. The operation of the sensor fusion module 1126 may thus vary in different use cases depending on factors such as the risk of overlooking a particular state versus the possible inconvenience of mistakenly detecting a particular state.
[0063] The corrected state provided by the sensor fusion module 1126 may be provided to an anomaly detection module 1128 for detection (e.g. through statistical analysis) of the risk of potential problems, and / or to an alert module 1130 to alert the user of existing or predicted problems.
[0064] Another functional diagram is provided in FIG. 10, with a focus on acoustic processing. Audio data is obtained at an audio data interface 1202, and additional sensor data is obtained at sensor data interface 1204. An analytics module 1206 processes the data to provide alerts, warnings, and or insights as appropriate through alert module 1208 for cases where there is sufficient cause to issue alerts without requiring further Al processing. To generate insights and alerts that cannot be generated from simpler thresholding or similar techniques, audio data is provided to a raw acoustic scene classifier 1210. The resulting raw state is providedto a system state classifier 1212, which generates a refined state. The refined state is provided to a sensor fusion module 1214, which corrects and augments the classification using data from other (e.g. non-audio) sensors. The resulting corrected state may be used by an anomaly detection module 1216 to raise alerts and warnings and to provide insights, e.g. through the alert module 1208.
[0065] FIG. 11 illustrates features of a cloud service 3502 used in some embodiments. The service includes a hub gateway module 3504 for communication with hub nodes (or, in some embodiments, with sensor nodes). A process and store module 3506 processes data from the hub nodes for storage in a database 3510. A hub node messenger module 3508 manages messaging with hub nodes as described above with respect to FIG. 6. A UX authentication gateway module 3512 provides limited access as appropriate to authorized users, and a query gateway module 3514 allows authorized users to access the stored data, for example through a GraphQL interface. A time event trigger module 3516 coordinates timed events. An API handler module 3518 provides an interface with outside services and data providers, such as those providing messaging services, weather data, content management, property management, real estate, insurance, or other services or data.
[0066] Systems and methods according to some embodiments provide reports and alerts regarding safety, property damage, health risks, mechanical problems, home efficiency, and overall status for dwellings in which they are implemented. Some reports and alerts may be based on thresholds applied directly to sensor data. Voltage spikes, faulty wiring, and high carbon monoxide levels may be detected using such techniques. Some reports and alerts may be based on the statistics of sensor data. Dwelling occupancy and HVAC efficiency levels are conditions that may be determined using such techniques. Some reports and alerts may be based on machine learning, such as toilet flush and smart alarm detection. Some reports and alerts may be based on artificial intelligence, such as an indication of whether the HVAC is on, whether the toilet is filling, and whether the shower is on.
[0067] In some embodiments, a taxonomy of detection of conditions and events may be understood as follows. In “layer 1 ,” thresholds applied to sensor data together with physics-based logic may be used for condition monitoring and alerting. For example, high temperature alerts and electrical sags may be detected from sensor data using appropriate thresholds.
[0068] In “layer 2,” statistical analysis and physics-based modeling for may be implemented for condition modeling and alerting. For example, statistical modeling may be used to detect occupancy, to determine HVAC efficiency, and to detect wiring faults.
[0069] In “layer 3” machine learning and Al (e.g. neural networks) may be used to operate data-driven classifiers to detect operational states and identify faults. For example, such techniques may be used to detectwhether the HVAC is on or off, whether the toilet is flushing or filling, or whether there are faults with appliances.
[0070] In “layer 4,” cross-sensor fusion and trend determination for anomaly detection and predictive diagnostics. For example, a detection may be made that the AC compressor is failing, or a recommendation may be made to change the furnace run capacitor.Example System Hardware.
[0071] FIG. 12 schematically illustrates network topology used in some embodiments. One or more sensor nodes 3602a-c may be disposed in a residence, e.g. in different rooms. Each node may be plugged in to an electrical outlet. The sensor nodes are in wireless communication with a hub device 3604, e.g. using a WiFi connection or other local area network. The hub device 3604 may further have a connection to a wide-area network 3606 such as the internet through which a networked service 3608 running on one or more servers, such as a cloud service, may be accessed. Users may have personal devices such as a computer 3610 or mobile computing device 3612 that can also access the networked service 3608 over the network 3606. In some embodiments, the user interfaces described herein are displayed when the user accesses the networked service on their personal device. In some embodiments, the user’s personal devices may be capable of communicating directly with the hub device 3604 and / or with the sensor nodes 3602a-c to view the user interfaces or to exchange other information. In some embodiments, the sensor nodes 3602a-c may be capable of communicating over the network 3606 without the intermediation of the hub device (e.g. through a router).
[0072] The hub device includes a memory, which may include a non-transitory memory, a processor, and one or more network interfaces for connection (e.g. a wireless connection) with the sensor nodes and with the internet (possibly through a router). The memory may store collected data (e.g. temperature and audio data) received from one or more sensor nodes. The memory may further store instructions that are executable by the processor for causing the processor to perform any of the methods described herein.Example Installation.
[0073] In some embodiments, a sensor node is provided for approximately each 300 square feet of a home. This may result in around six sensor nodes in a house. The sensor nodes may be configured to be plugged into a standard household power outlet (e.g. a North American power outlet in some embodiments, though other configurations may be used to accommodate different standards in some embodiments). The sensor nodes may be distributed to provide coverage at locations such as near a thermostat, near utilities (e.g. a furnace), in bathrooms and kitchens, and in a main living area. In some embodiments, one hub node is provided per house. The hub node connects to a household power source and to a WiFi router or other network connection. Insome embodiments, water sensor nodes may also be provided. The water sensor nodes may be water leak contact sensors. The water sensors may be battery powered to allow for safe and flexible positioning at locations where water is at risk of accumulation. In one example, five such water sensors are provided in a house. With the use of such a system, an authorized party can access real-time reports and alerts through a management dashboard accessible through a web interface.Smoking Detection.
[0074] In some embodiments, architectures as described herein may be used to detect the presence of recreational smoking (e.g. tobacco or marijuana) or other sources of air quality issues, such as the use of a fireplace.
[0075] Recreational smoking releases different chemicals into the air that may be detected by a sensor node according to example embodiments. For example, levels of volatile organic compounds (VOCs) and / or carbon monoxide (CO) may be detected, and an alert may be issued based on the measured levels. Example embodiments may also make use of a hub node. Sensor nodes such as nodes 3602a-c may be positioned in one or more locations within a dwelling. The sensor nodes send the raw data to the hub node as appropriate (e.g., every minute). The processes the raw data, e.g. using an Al model to generate a raw smoking confidence. The raw smoking confidence along with ancillary sensor data may be sent to a cloud server for further processing. The cloud server then post-processes the raw smoking confidence data to improve accuracy.
[0076] In example embodiments, each of a plurality of sensor nodes includes a detector that is sensitive to VOCs. The detector may include a metal oxide (MOX) substrate that is heated. VOCs react to the surface of the metal oxide substrate, changing the resistance of the substrate. In example embodiments, the sensor typically measures the resistance of the metal oxide substrate. The presence of VOCs tends to lower the resistance, with higher concentrations of VOCs leading to a greater drop in resistance. Different VOCs have a different reaction rate to the metal oxide substrate at different temperatures. To account for this, the metal oxide substrate is heated in a predetermined pattern, described by a heating profile or temperature profile. The sensor operates to measure the resistance of the metal oxide substrate at various times during the heating profile.
[0077] FIG. 13 schematically illustrates a sensor architecture for smoking detection. A controller 1302 directs heating circuitry 1304 of a selective VOC sensor 1306 to heat a metal oxide substrate 1308 according to a heating profile. Resistance measurement circuitry 1310 measures the resistance of the substrate at different points along the heating profile, and the controller 1302 collects the results. The controller 1302 may alsocollect sensor data from other sensors such as a humidity sensor 1312, a temperature sensor 1314, a light sensor 1316, and a CO sensor 1210.
[0078] FIGs. 14 and 15 are graphs illustrating example temperature profiles that may be used in some embodiments. Under the influence of the heating circuitry 1304, the temperature of the metal oxide substrate 1308 is varied as a function of time as illustrated in FIG. 14 or 15. The black dots along the graph represent times at which resistance readings are taken. Different temperature profiles and different resistance reading times may be used in different embodiments. Different temperature profiles may have different durations, ranging for example from 10 seconds to 30 seconds, but profile durations outside that range are also possible. The temperature profile is repeated periodically to obtain new sets of resistance measurements.
[0079] Some embodiments make use of a form of calibration referred to herein as sensor auto-tuning. For various reasons including manufacturing differences and degradation over time, different VOC sensors in the same conditions will measure different resistances. This variation makes it difficult to use the sensor readings as an input to a machine learning classifier on the VOC resistance profiles. In example embodiments, the suitability of the resistance profiles for use by a machine learning classifier is increased by processing to minimize the degree of variation through a process of field feature tuning during operation.
[0080] Example embodiments operate based on the observation that, over the course of an extended period of time (e.g., one week), there are usually time periods, possibly brief, during which the occupants of a dwelling are not smoking. During these periods, the sensor will be exposed to non-smoking (“clean”) air. Some periods of “clean” might be better than others due to opening doors or windows to the outside, for example. In example embodiments, the resistance values from the VOC sensor are calibrated at least in part by reference to the “cleanest” sample (corresponding to the highest resistance) obtained during an extended period of data collection. In some embodiments, this calibration is performed independently for each step in the temperature profile.
[0081] In the presence of environmental VOCs, the VOC sensor (which may be an MOX sensor) responds accordingly for all the heater profile steps. Often, but not always, the response for different profile steps are highly corelated. In some embodiments, when tuning or normalizing, these correlations allow for the use of a single normalization factor for all the heater profile steps. In other embodiments, particularly if the sensor readings at each step are not well correlated, individualized normalization factors are used for each step. Examples of these different types of embodiments are described below.
[0082] For some sensors, it may take multiple heater profile cycles for the sensor to reach steady state, particularly in the case of heaters that are not run in a feedback loop. When the sensor is not in steady state,the sensor readings for each step (generally resistance values) may be different than expected. In those cases, some embodiments operate to determine when the sensor has reached a steady-state condition before activating the full processing pipeline. Other embodiments may derate the non-steady state results. Still others may treat the steady state determination as additional metadata to consider throughout the pipeline.
[0083] In some embodiments, a VOC sensor provides an analog resistance measurement that is converted to a digital value to send to the controller. This results in the reported resistance having a maximum and minimum possible value. When scaling, calibrating and / or tuning these values, the maximum and minimum values are generally set as boundaries. Some embodiments may operate to de-weight values that are at those boundaries due to the possible nonlinearities that might be present.
[0084] A flow chart illustrating one example embodiment is illustrated in FIG. 16. At 1602, a time series of resistance value is obtained. As an example, the sensor raw data in a format such as the following:[time since power on in msecs , timestamp in seconds, sensor resistance, step index]
[0085] For example, in a case with ten heating profile steps numbered from 0 to 9, using the format above, an example of a time series of resistance values may be the following:[10756659, 1711583819, 102400000.0, 0] ,[10756939, 1711583819, 803846.4, 1 ] ,[ 10762915, 1711583825, 24286085.333333332, 2] ,[10763197, 1711583825, 784448.7999999999, 3] ,[10763475, 1711583825, 3884305.3333333335, 4] ,[10766240, 1711583828, 3725329.6, 5] ,[10769181, 1711583831, 3585904.9333333336, 6] ,[10769427, 1711583831, 752042.5333333333, 7] ,[10772206, 1711583834, 816831.0666666668, 8] ,[10775124, 1711583837, 862497.3333333334, 9]
[0086] The sensor resistance value at each step n may be referred to as sensor_resistance_n. For example, using the example of the data above, sensor_resistance_5 = 3725329 . 6.
[0087] At 1604, from among a plurality of sets of sensor readings (e.g. the readings over the past seven days), the maximum resistance value at each step index is stored. The maximum resistance value may be represented by max_res_n where n is the step index.
[0088] At 1606, a tuning factor is determined for each step. The tuning factor may be represented by tuning_factor_n.
[0089] In some embodiments, the tuning factor for each step is determined based on a clean air threshold step_n_threshold associated with each step. The clean air threshold may be determined by, for example, obtaining sets of resistance values at 1608 from a population of sensors, e.g. from a representative set of sensors deployed in different dwellings, different geographic regions, or otherwise sampled across deployed sensors. The clean air threshold may be based on sensor readings from a limited time period, e.g. from the most recent seven-day period. The step_n_threshold may be calculated at 1610 as a predetermined percentile, such as the 80th percentile, of resistance values at that step n from the population of sensors. The clean air threshold, such as step_n_threshold, may be selected to represent the maximum resistance value at step n in a clean environment. In an example embodiment, the step_n_threshold is equal to the 80th percentile of the (max_res_n) throughout the week for each unit in the deployment.
[0090] Making use of step_n_threshold, the tuning factors may be determined in some embodiments as follows: tuning_factor_n = min ( step_n_threshold / max_res_n, 1 )
[0091] In this case, the tuning factor is 1 if there exists an entry over step_n_threshold for step n over the past week. The tuning factor is equal to step_n_threshold / max_res_n if there is no entry over step n threshold for step n over the past week.
[0092] At 1612, each of the resistance values is scaled by the appropriate tuning value for the respective step. The scaled resistance value associated with step n may be represented by scaled_resistance_n. The scaled resistance values may be calculated as follows, for each step n: scaled resistance n = sensor resistance n * tuning factor n
[0093] At 1614, the values scaled_resistance_n are used in a determination of whether to issue an air quality alert, such as an alert to the presence of recreational smoking, use of a fireplace, or other condition. Various different implementations of such a determination process are described in greater detail below.
[0094] An alert may be issued over a network, such as through a text message or through an online interface such as the interface 400 shown in FIG. 2.
[0095] In some embodiments, the calculation of the tuning factors tuning_f actor_n is updated periodically. For example, they may be updated once per day, using data collected in the latest seven-day window.
[0096] In some embodiments, before sufficient data has been collected to perform the method of FIG. 16 (e.g. for the first seven days), the unsealed resistance values may be used for further processing at 1614 until the scaled resistance values become available.
[0097] FIG. 17 is a flow diagram illustrating another example embodiment. In this embodiment, a single tuning factor is used for all steps. At 1702, sets of sensor data are received. The sensor data may have a format as shown above with respect to step 1602. At 1704, the maximum value over a period of time is stored for a predetermined one of the step indices. For example, the maximum value max_res_2 of the resistance at step index 2 over the past 7 days may be stored. At 1706, the tuning factor tuning_f actor is determined based at least in part on the maximum value stored at 1704. The tuning factor may also be based on a clean air threshold, for example step_2_threshold for the predetermined step. The clean air threshold may be determined by, for example, obtaining sets of resistance values at 1708 from a population of sensors, e.g. from a representative set of sensors deployed in different dwellings, different geographic regions, or otherwise sampled across deployed sensors. The clean air threshold may be based on sensor readings from a limited time period, e.g. from the most recent seven-day period. The step_2_threshold may be calculated at 1710 as a predetermined percentile, such as the 80th percentile, of resistance values at the predetermined step from the population of sensors. (In different embodiments, different steps may be used. Step 2 is used here only as an example.) The clean air threshold, such as step_2_threshold, may be selected to represent the maximum resistance value at step 2 in a clean environment.
[0098] Making use of step_2_threshold, the tuning factor may be determined in some embodiments as follows: tuning_fa ctor = min ( step_2_thres hold / max_res_2 , 1 )
[0099] In this case, the tuning factor is 1 if there exists an entry over step_2_threshold over the past week. The tuning factor is equal to step_2_threshold / max_res_2 if there is no entry over step_2_threshold for step 2 over the past week.
[0100] At 1712, each of the resistance values is scaled by the same tuning value tuning_fa ctor. The scaled resistance value associated with step n may be represented by scaled_res ista nce_n. The scaled resistance values may be calculated as follows, for each step n: s ca led_resistance_n = sensor_resistance_n * tuning_fa ctor
[0101] At 1714, the values scaled_resistance_n are used in a determination of whether to issue an air quality alert, such as an alert to the presence of recreational smoking, use of a fireplace, or other condition. Various different implementations of such a determination process are described in greater detail below.
[0102] In some embodiments, before sufficient data has been collected to perform the method of FIG. 17 (e.g. for the first seven days), the unsealed resistance values may be used for further processing at 1714 until the scaled resistance values become available.
[0103] Different techniques may be used for determining whether to issue an air quality alert. In some embodiments, the most recent time series of scaled resistance values is provided as a vector input to a machine learning classifier, such as a neural network or a k nearest neighbors (k-NN) classifier, where the classifier has been trained using supervised learning to distinguish between scaled resistance values obtained in an alert condition (e.g. in the presence of recreational smoking) and scaled resistance values without the alert condition (e.g. with clean air). The data used for supervised learning may have been collected from a wide variety of dwellings during times when smoking was known to be occurring or not occurring, and the data is labeled accordingly and used to train the machine learning classifier using known techniques.
[0104] In some embodiments, the input vector is a vector of ten scaled data values, but other numbers of values may be used in other embodiments.
[0105] The classifier may run periodically, producing a confidence estimate over a window of a small number of input vectors or over a single input vector. FIG. 18 is an example of a graph of raw (unfiltered) confidence scores over time, indicating the confidence level that the input vector obtained at that time reflects the presence of tobacco smoking. As seen in FIG. 18, the resulting confidence estimates can vary widely over short periods of time. This variation can interfere with making a final decision on whether an alert condition is present (e.g. whether a smoking event is in process). To address this, some embodiments use a smoothing algorithm to stabilize the readings. Any of a variety of smoothing algorithms may be used, such as a moving average, a convolution, or other types of filtering. FIG. 19 illustrates the tobacco-smoking confidence levels over time of FIG. 18 after being processed by a smoothing algorithm.
[0106] In an example embodiment, detection of a smoking event (or other air quality event) proceeds as follows. Sensor data collected during a warm-up period (e.g. before the heating cycle reliably heats the MOX substrate to the desired temperatures) may be ignored. A raw smoking confidence level for each heating cycle may be determined based on the scaled resistance values obtained in that cycle. A filtered smoking confidence level is calculated by taking a moving average over a window (e.g. a 5-minute window) of the raw smoking confidence that passes step 1. If the filtered smoking confidence level is greater than aconfidence threshold for at least a time threshold (e.g. ten minutes), then a smoking-detected event is generated, and an alert may be issued. With reference to FIG. 19, a confidence level of 80 may be used as a threshold, although other thresholds may be used in other embodiments.
[0107] Some embodiments employ sensor fusion techniques to detect the presence of smoking using additional sensors in combination with a VOC sensor. As an example some sensors may be used to determine whether a human is present in the dwelling, as otherwise it is not likely that recreational smoking is happening. Some sensors may be used to detect the level of presence of particulate matter or to determine whether combustion is occurring. Whichever sensor or sensors are chosen, in example embodiments, candidate smoking events identified through the classification system on the VOC sensor may be checked against the data from other sensors. A determination is made of whether the data or inferences from these other sensors is consistent with the determination (based on the VOC sensor) that smoking is occurring. If these other sensors agree, the event is confirmed. If they do not, the confidence in the candidate event may be reduced. If the reduction is great enough, the event may be suppressed and not reported as an air quality or smoking alert.
[0108] In some embodiments, if the smoking event is detected based on the confidence threshold, but no humans have been detected in the dwelling within a predetermined time period, such as the preceding hour, then the cigarette smoking event is not confirmed, and no smoking alert may be issued. In other embodiments, particularly where smoking detection is used as a component of fire detection, the presence or absence of humans may not be a factor in determining whether to issue an air quality alert.
[0109] In some embodiments, the use of a carbon monoxide (CO) sensor may be used to increase reliability of smoking detection. Smoking cigarettes generally results in a rise in CO levels. If the smoke machine learning classifier generates a smoking event and if there is a CO concentration rise at the same time, then the confidence level of a cigarette smoking event may be increased.
[0110] While some of the example embodiments are described with reference to cigarette smoking, the same algorithms are used in some embodiments to detect other activities that can affect the air quality, such as marijuana smoking, vaping, fireplace operation and so on. The techniques described herein may also be used for any specific gas detection performed using a metal oxide sensor or for other analogous types of environmental sensors.
[0111] Some embodiments may be implemented using the sensor systems and methods, including processors configured to perform the described methods, as described in the following documents, both of which are incorporated herein by reference in their entirety:• U.S. Provisional Patent Application No. 63 / 525,549, filed July 7, 2023, entitled “Apparatus and Method for Multi-Sensor Home Monitoring and Maintenance.”• International patent application WO2023147124A2, published August 3, 2023, entitled “Apparatus and method for multi-sensor home monitoring and maintenance.”
[0112] In example embodiments, the sensor data scaling process is done to deal with the sensor-to-sensor variation and sensor aging issues. The classifier results may be provided to a state machine and into a sensor fusion module together with other relevant data such as environmental sensor data. The output is analyzed to determine if an event happened. This may include a check for basic signal stability to make sure the data is of sufficient quality to make a determination. Once a smoking event is declared, it may be communicated to a cloud server for post-processing, including event trend analysis. That output may be used to determine whether confidence is high enough to alert a customer to a smoking event. Example embodiments may also collect pseudo-labeled, mulit-sensor data samples to use for training data sets and for field performance analysis
[0113] FIG. 20 is a schematic functional block diagram of a system that may be used for smoking detection or for detection of other air quality issues according to an example embodiment. A sensor node 2022 that includes a metal oxide VOC sensor provides raw data, including time series of resistance values from the VOC sensor, to a hub 2004. The VOC data is preprocessed at 2006 and is scaled or tuned at 2008, using for example the techniques described with reference to FIGs. 16 and 17. This scaling or tuning process helps to accommodate sensor-to-sensor variation and sensor aging issues. After that, a classifier is run at 2010 on the tuned VOC time series data. The classifier output is provided to a state machine 2012 which transitions as appropriate between a state in which the classifier output indicates the presence of smoking and a state in which it does not. The state machine may be used to provide stability to the output and to avoid unrealistic transitions between smoking and non-smoking states. The state machine output is provided to a sensor fusion module 2014. There, the output of the state machine may be compared with the detection of other environmental events to confirm or refute the presence of smoking. For example, environmental events detected at 2016 may include the detection of higher CO levels (consistent with smoking), the presence of one or more occupants (consistent with smoking), or the absence of any occupants (inconsistent with smoking). The presence or absence of occupants may be determined in any of a number of ways, including the presence or absence of sounds or vibrations detected by sensor node 2002 or other sensor nodes in the dwelling. Smoking event detection may be performed at 2018, and a final determination is made at 2020 of whether to publish a smoking event. In some embodiments, a determination may be made at 2022 of whether the initialdata being processed has sufficient stability to merit the issuance of an alert, as instability of the sensor data may indicate unreliable results.
[0114] In some embodiments, the VOC time series resistance data is labeled according to whether the presence or absence of smoking was confirmed, and this labeled data is included in training set for further training of the machine learning classifier.Additional Embodiments.
[0115] A method according to an example embodiment comprises: obtaining a plurality of sets of volatile organic compound (VOC) sensor readings, each set including a time series of resistance values, each resistance value corresponding to a step in a temperature profile; determining at least a first clean air threshold based on the sets of VOC sensor readings; for at least a first set of VOC sensor readings, scaling at least one of the resistance values in the time series of resistance values based at least in part on the first clean air threshold to obtain a first scaled time series of resistance values; and determining whether to issue an air quality alert based on at least the first scaled time series of resistance values.
[0116] In some embodiments, the air quality alert is an alert indicating the presence of recreational smoking.
[0117] In some embodiments, determining at least a first clean air threshold comprises determining a respective clean air threshold for each step in the temperature profile. In such embodiments, scaling at least one of the resistance values may comprise scaling each of the resistance values based at least in part on the clean air threshold of the corresponding step in the temperature profile.
[0118] Some embodiments further comprise providing the first scaled time series of resistance values as a vector input to a machine learning classifier trained to classify inputs associated with smoking and inputs not associated with smoking, wherein the determination of whether to issue the alert is based at least in part on a confidence level output by the machine learning classifier.
[0119] In some embodiments, the machine learning classifier creates a time series of confidence levels by outputting a confidence level for each of a plurality of scaled time series of resistance values, and wherein the determination of whether to issue the alert is based at least in part on a smoothed version of the time series of confidence levels.
[0120] Some embodiments further comprise providing the first scaled time series of resistance values as a vector input to a machine learning classifier trained to classify inputs associated with tobacco smoking, inputs associated with marijuana smoking, and inputs not associated with smoking, wherein the determination of whether to issue the alert is based on the output of the machine learning classifier.
[0121] Some embodiments comprise making an automated determination of whether a person is present based on sensor data other than the VOC sensor readings, wherein the determination of whether to issue the alert is based at least in part on the automated determination.
[0122] In some embodiments, the determination of whether to issue the alert is further based at least in part on data from a carbon monoxide sensor.
[0123] In some embodiments, within each time series of resistance values, different resistance values are obtained at different temperatures of a metal oxide substrate.
[0124] In some embodiments, the first clean air threshold is selected such that a predetermined proportion of at least a subset of the resistance values are less than the first clean air threshold.
[0125] Some embodiments further comprising determining a maximum resistance from among at least a subset of the resistance values, wherein the scaling of at least one of the resistance values is based at least in part on the maximum resistance.
[0126] In some embodiments, the scaling of at least one of the resistance values comprises multiplying the resistance value by a tuning factor equal to the first clean air threshold divided by the maximum resistance.
[0127] Additional embodiments include systems comprising one or more processors, wherein the systems are configured to perform any of the methods described herein. The systems may be distributed systems.
[0128] As used herein, the singular forms “a,” “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and / or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0129] Other variations of the described embodiments are contemplated. The above-described embodiments are intended to be illustrative, rather than restrictive, of the present invention. The scope of the invention is thus not limited by the examples given above but rather is defined by the following claims.
Claims
Claims1. A method comprising obtaining a plurality of sets of volatile organic compound (VOC) sensor readings, each set including a time series of resistance values, each resistance value corresponding to a step in a temperature profile; determining at least a first clean air threshold based on the sets of VOC sensor readings; for at least a first set of VOC sensor readings, scaling at least one of the resistance values in the time series of resistance values based at least in part on the first clean air threshold to obtain a first scaled time series of resistance values; and determining whether to issue an air quality alert based on at least the first scaled time series of resistance values.
2. The method of claim 1, wherein the air quality alert is an alert indicating the presence of recreational smoking.
3. The method of claim 1 , wherein determining at least a first clean air threshold comprises determining a respective clean air threshold for each step in the temperature profile; and wherein scaling at least one of the resistance values comprises scaling each of the resistance values based at least in part on the clean air threshold of the corresponding step in the temperature profile.
4. The method of claim 1, further comprising providing the first scaled time series of resistance values as a vector input to a machine learning classifier trained to classify inputs associated with smoking and inputs not associated with smoking, wherein the determination of whether to issue the alert is based at least in part on a confidence level output by the machine learning classifier.
5. The method of claim 4, wherein the machine learning classifier creates a time series of confidence levels by outputting a confidence level for each of a plurality of scaled time series of resistance values, and wherein the determination of whether to issue the alert is based at least in part on a smoothed version of the time series of confidence levels.
6. The method of claim 1, further comprising providing the first scaled time series of resistance values as a vector input to a machine learning classifier trained to classify inputs associated with tobacco smoking, inputs associated with marijuana smoking, and inputs not associated with smoking, wherein the determination of whether to issue the alert is based on the output of the machine learning classifier.
7. The method of claim 1 , further comprising making an automated determination of whether a person is present based on sensor data other than the VOC sensor readings, wherein the determination of whether to issue the alert is based at least in part on the automated determination.
8. The method of claim 1 , wherein the determination of whether to issue the alert is further based at least in part on data from a carbon monoxide sensor.
9. The method of claim 1 , wherein, within each time series of resistance values, different resistance values are obtained at different temperatures of a metal oxide substrate.
10. The method of claim 1 , wherein the first clean air threshold is selected such that a predetermined proportion of at least a subset of the resistance values are less than the first clean air threshold.11 . The method of claim 1 , further comprising determining a maximum resistance from among at least a subset of the resistance values, wherein the scaling of at least one of the resistance values is based at least in part on the maximum resistance.
12. The method of claim 11 , wherein the scaling of at least one of the resistance values comprises multiplying the resistance value by a tuning factor equal to the first clean air threshold divided by the maximum resistance.
13. A system comprising one or more processors, the system being configured to perform at least: obtaining a plurality of sets of volatile organic compound (VOC) sensor readings, each set including a time series of resistance values, each resistance value corresponding to a step in a temperature profile; determining at least a first clean air threshold based on the sets of VOC sensor readings; for at least a first set of VOC sensor readings, scaling at least one of the resistance values in the time series of resistance values based at least in part on the first clean air threshold to obtain a first scaled time series of resistance values; anddetermining whether to issue an air quality alert based on at least the first scaled time series of resistance values.
14. The system of claim 13, wherein determining at least a first clean air threshold comprises determining a respective clean air threshold for each step in the temperature profile; and wherein scaling at least one of the resistance values comprises scaling each of the resistance values based at least in part on the clean air threshold of the corresponding step in the temperature profile.
15. The system of claim 13, further configured to provide the first scaled time series of resistance values as a vector input to a machine learning classifier trained to classify inputs associated with smoking and inputs not associated with smoking, wherein the determination of whether to issue the alert is based at least in part on a confidence level output by the machine learning classifier.
16. The system of claim 13, wherein the first clean air threshold is selected such that a predetermined proportion of at least a subset of the resistance values are less than the first clean air threshold.
17. A system comprising one or more processors configured to perform at least: obtaining a plurality of sets of volatile organic compound (VOC) sensor readings, each set including a time series of resistance values, each resistance value corresponding to a step in a temperature profile; providing at least a first one of the time series of resistance values as a vector input to a machine learning classifier trained to classify inputs associated with recreational smoking and inputs not associated with recreational smoking; and determining whether to issue an alert of recreational smoking based at least in part on an output of the machine learning classifier.
18. The system of claim 17, further configured to perform: determining at least a first clean air threshold based on the sets of VOC sensor readings; and scaling at least one of the resistance values in the first time series of resistance values based at least in part on the first clean air threshold before providing the first time series of resistance values to the machine learning classifier.
19. The system of claim 17, wherein the machine learning classifier creates a time series of confidence levels by outputting a confidence level for each of a plurality of time series of resistance values, and wherein thedetermination of whether to issue the alert is based at least in part on a smoothed version of the time series of confidence levels.
20. The system of claim 17, wherein, within each time series of resistance values, different resistance values are obtained at different temperatures of a metal oxide substrate.
Citation Information
Patent Citations
Nanoparticles encapsulating antibacterial peptides with chitosan, and use thereof
KR1020230146433A
Apparatus for volatile organic compound (VOC) detection
US20180120278A1
HVAC system with indoor air quality monitoring and mitigation
US20230366581A1
System for diagnosis and management of indoor air quality using machine learning
US20240133572A1
Apparatus and method for multi-sensor home monitoring and maintenance
WO2023147124A2