Systems for sensing and controlling the bed environment

Through environmental sensing and automation systems, sleep environment parameters are monitored and adjusted, the sleep environment optimization problem in the existing technology is solved, and personalized sleep environment recommendation and automatic adjustment are realized, which significantly improves the sleep quality.

CN112367906BActive Publication Date: 2024-12-20SNOWBALLEN CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN201980041751.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-04-08
Filing Date
2019-12-13
Publication Date
2024-12-20
Estimated Expiration
2039-12-13

AI Technical Summary

Technical Problem

The prior art is difficult to effectively monitor and improve the sleep environment, resulting in poor sleep quality.

Method used

Adopt environmental sensing and automation systems, through hardware monitors and data processing systems, sleep environment parameters are monitored in real time, and personalized recommendations and automatic adjustments are provided based on differences, such as adjusting the hardness, temperature and noise levels of the mattress.

Benefits of technology

It improves the quality of users' sleep and provides seamless sleep environment optimization. It can automatically improve the environment even when users sleep, improving the sleep experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112367906B_ABST
    Figure CN112367906B_ABST
Patent Text Reader

Abstract

The sensor system senses a plurality of environmental phenomena and sends a data message having the sensed parameters. The computer system determines that the sensed parameters are indicative of poor quality sleep and sends instructions to adjust the environment. The control system adjusts the environment without specific input from the user.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims the benefit of U.S. Provisional Application No. 62 / 830,743, filed on April 8, 2019, which is incorporated herein by reference in its entirety.

[0003] This document relates to home automation.

[0004] background

[0005] Generally speaking, a bed is a piece of furniture used as a place to sleep or relax. Many modern beds include a soft mattress on a bed frame. The mattress may include springs, foam materials and / or air chambers to support the weight of one or more occupants.

[0006] Overview

[0007] Implementations may include any, all, or none of the following features.

[0008] In some implementations, the system can improve the technology of the sleep environment through an automated process of environmental sensing and control. Many sleep environments can be monitored for many days to allow models of ideal or improved environments for sleep to be created using data of great breadth and depth. These high-quality models can then be used to provide users with acceptable and easy-to-understand recommendations to improve their sleep environments. Additionally or optionally, instructions can be made to automatically adjust the user's sleep environment to promote a better sleep experience. In some implementations, these adjustments can be made without specific input from the user to allow seamless improvements even when the user is already asleep.

[0009] Other features, aspects and potential advantages will become apparent from the accompanying description and accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] Figure 1 An example airbed system is shown.

[0011] Figure 2 is a block diagram of an example of various components of an airbed system.

[0012] Figure 3 An example environment is shown that includes a bed in communication with devices located in and around the home.

[0013] Figure 4A and Figure 4B is a block diagram of an example data processing system that may be associated with a bed.

[0014] Figure 5 and Figure 6is a block diagram of an example of a motherboard that may be used in a data processing system that may be associated with a bed.

[0015] Figure 7 is a block diagram of an example of a daughter board that may be used in a data processing system that may be associated with a bed.

[0016] Figure 8 is a block diagram of an example of a motherboard without a daughterboard that may be used in a data processing system that may be associated with a bed.

[0017] Fig. 9 is a block diagram of an example of a sensor array that may be used in a data processing system that may be associated with a bed.

[0018] Fig.10 is a block diagram of an example of a controller array that may be used in a data processing system that may be associated with a bed.

[0019] Fig.11 is a block diagram of an example of a computing device that may be used in a data processing system that may be associated with a bed.

[0020] Figure 12-16 is a block diagram of an example cloud service that may be used in a data processing system that may be associated with a bed.

[0021] Fig.17 is a block diagram of an example of using a data processing system that may be associated with a bed to automate peripheral devices around the bed.

[0022] Fig.18 is a schematic diagram illustrating examples of computing devices and mobile computing devices.

[0023] Fig.19 is a block diagram of an example system for collecting environmental data from many sleep environments.

[0024] Fig. 20 is a block diagram of an example system for collecting environmental data from a sleep environment during many sleep sessions.

[0025] Fig.21 is a graph of example data related to a sleeping environment.

[0026] Fig. 22 is a diagram of an example system for adjusting a sleep environment.

[0027] Fig.23 is a diagram of an example system for automatic adjustment of a sleeping environment.

[0028] Fig.24 is a diagram of an example process that may be used to calculate data related to a sleep environment.

[0029] Fig.25 is a swim lane diagram of an example process for modifying a sleeping environment.

[0030] Fig.26 and Fig. 27 is a swim lane diagram of an example process for determining target environment parameters.

[0031] Like reference symbols in the various drawings indicate like elements.

[0032] Detailed Description

[0033] One or more hardware monitors are used to monitor the user's sleeping environment (often a bedroom, but could be a hotel room, hospital room, etc.). In addition, while the user is sleeping in these environments, their sleep quality is monitored. From this information, beneficial sleep environment parameters can be derived that have been shown to be associated with high-quality sleep at a group level or at an individual level.

[0034] The automation system can use these sleep environment parameters to help users improve their sleep quality. For example, personalized recommendations can be made to users based on the difference between the user's actual sleep environment and the beneficial sleep environment parameters. In some examples, the home automation system can be assigned the task of directly adjusting the environment to match the beneficial sleep environment parameters (e.g., changing the temperature, bed hardness, noise level, etc.).

[0035] Example Airbed Hardware

[0036] Figure 1 An example airbed system 100 is shown that includes a bed 112. The bed 112 includes at least one air chamber 114 surrounded by an elastic edge 116 and encapsulated by a bed ticking 118. The elastic edge 116 may include any suitable material, such as foam.

[0037] like Figure 1As shown, the bed 112 can be a dual-chamber design having a first fluid chamber and a second fluid chamber, such as a first air chamber 114A and a second air chamber 114B. In an optional embodiment, the bed 112 may include a chamber for using a fluid other than air suitable for the application. In some embodiments, such as in an embodiment of a single bed or a children's bed, the bed 112 may include a single air chamber 114A or 114B or multiple air chambers 114A and 114B. The first air chamber 114A and the second air chamber 114B may be in fluid communication with the pump 120. The pump 120 may be electrically communicated with the remote controller 122 via a control box 124. The control box 124 may include a wired or wireless communication interface for communicating with one or more devices (including the remote controller 122). The control box 124 may be configured to operate the pump 120 based on a command input by a user using the remote controller 122 to cause an increase and decrease in the fluid pressure of the first air chamber 114A and the second air chamber 114B. In some implementations, the control box 124 is integrated into the housing of the pump 120 .

[0038] The remote controller 122 may include a display 126, an output selection mechanism 128, a pressure increase button 129, and a pressure decrease button 130. The output selection mechanism 128 may allow a user to switch the airflow generated by the pump 120 between the first air chamber 114A and the second air chamber 114B, thereby achieving control of multiple air chambers with a single remote controller 122 and a single pump 120. For example, the output selection mechanism 128 may be a physical control (e.g., a switch or button) or an input control displayed on the display 126. Alternatively, a separate remote control unit may be provided for each air chamber, and each separate remote control unit may have the ability to control multiple air chambers. The pressure increase button 129 and the pressure decrease button 130 may allow a user to increase or decrease the pressure in the air chamber selected using the output selection mechanism 128, respectively. Adjusting the pressure in the selected air chamber may cause a corresponding adjustment to the firmness of the corresponding air chamber. In some embodiments, the remote controller 122 may be omitted or modified as appropriate for the application. For example, in some embodiments, the bed 112 may be controlled by a computer, tablet computer, smart phone, or other device in wired or wireless communication with the bed 112 .

[0039] Figure 2 1 is a block diagram of various components of an air mattress system. For example, these components may be used in the example air mattress system 100. Figure 2 As shown, the control box 124 may include a power supply 134, a processor 136, a memory 137, a switching mechanism 138, and an analog-to-digital (A / D) converter 140. The switching mechanism 138 may be, for example, a relay or a solid-state switch. In some implementations, the switching mechanism 138 may be located in the pump 120 instead of in the control box 124.

[0040] The pump 120 and the remote controller 122 are in bidirectional communication with the control box 124. The pump 120 includes a motor 142, a pump manifold 143, a safety valve 144, a first control valve 145A, a second control valve 145B, and a pressure transducer 146. The pump 120 is fluidly connected to the first air chamber 114A and the second air chamber 114B through a first tube 148A and a second tube 148B, respectively. The first control valve 145A and the second control valve 145B can be controlled by the switch mechanism 138, and can be operated to adjust the flow of fluid between the pump 120 and the first air chamber 114A and the second air chamber 114B, respectively.

[0041] In some implementations, the pump 120 and the control box 124 can be provided and packaged as a single unit. In some alternative implementations, the pump 120 and the control box 124 can be provided as physically separate units. In some implementations, the control box 124, the pump 120, or both are integrated into or otherwise contained within a bed frame or bed support structure supporting the bed 112. In some implementations, the control box 124, the pump 120, or both are located outside of the bed frame or bed support structure (e.g., in a Figure 1 ).

[0042] exist Figure 2 The example airbed system 100 depicted in includes two air chambers 114A and 114B and a single pump 120. However, other implementations may include an airbed system having two or more air chambers and one or more pumps incorporated into the airbed system to control the air chambers. For example, a separate pump may be associated with each air chamber of the airbed system, or a pump may be associated with multiple chambers of the airbed system. The separate pumps may allow each air chamber to be inflated or deflated independently and simultaneously. Furthermore, additional pressure transducers may also be incorporated into the airbed system such that, for example, a separate pressure transducer may be associated with each air chamber.

[0043] In use, the processor 136 may, for example, send a pressure reduction command to one of the air chambers 114A or 114B, and the switch mechanism 138 may be used to convert the low voltage command signal sent by the processor 136 into a higher operating voltage sufficient to operate the safety valve 144 of the pump 120 and open the control valve 145A or 145B. Opening the safety valve 144 may allow air to escape from the air chamber 114A or 114B through the corresponding air tube 148A or 148B. During deflation, the pressure transducer 146 may send a pressure reading to the processor 136 through the A / D converter 140. The A / D converter 140 may receive analog information from the pressure transducer 146 and may convert the analog information into digital information that may be used by the processor 136. The processor 136 may send a digital signal to the remote control 122 to update the display 126 to convey the pressure information to the user.

[0044] As another example, the processor 136 may send an increase pressure command. The pump motor 142 may be energized in response to the increase pressure command and send air to a designated air chamber in the air chambers 114A or 114B through the air tube 148A or 148B via electronically operating the corresponding valve 145A or 145B. When air is delivered to the designated air chamber 114A or 114B to increase the stability of the air chamber, the pressure transducer 146 may sense the pressure in the pump manifold 143. Furthermore, the pressure transducer 146 may send a pressure reading to the processor 136 via the A / D converter 140. The processor 136 may use the information received from the A / D converter 140 to determine the difference between the actual pressure and the desired pressure in the air chamber 114A or 114B. The processor 136 may send a digital signal to the remote control 122 to update the display 126, thereby conveying pressure information to the user.

[0045] In general, during the inflation or deflation process, the pressure sensed within the pump manifold 143 can provide an approximation of the pressure within the corresponding air chamber in fluid communication with the pump manifold 143. An example method of obtaining a pump manifold pressure reading that is substantially equal to the actual pressure in the air chamber includes shutting off the pump 120, allowing the pressure within the air chamber 114A or 114B to equalize with the pump manifold 143, and then sensing the pressure within the pump manifold 143 using the pressure transducer 146. Thus, providing a sufficient amount of time to allow the pressure within the pump manifold 143 and chamber 114A or 114B to equalize can result in a pressure reading that is an accurate approximation of the actual pressure within the air chamber 114A or 114B. In some implementations, multiple pressure sensors (not shown) can be used to continuously monitor the pressure of the air chambers 114A and / or 114B.

[0046] In some implementations, the information collected by the pressure transducer 146 can be analyzed to determine various states of a person lying on the bed 112. For example, the processor 136 can use the information collected by the pressure transducer 146 to determine the heart rate or breathing rate of a person lying on the bed 112. For example, a user can lie on one side of the bed 112 that includes the chamber 114A. The pressure transducer 146 can monitor the fluctuations in the pressure of the chamber 114A, and this information can be used to determine the heart rate and / or breathing rate of the user. As another example, the collected data can be used to perform additional processing to determine the sleep state of the person (e.g., waking up, light sleep, deep sleep). For example, the processor 136 can determine when a person falls asleep, as well as the various sleep states of the person while falling asleep.

[0047] Additional information associated with the user of the airbed system 100 that can be determined using information collected by the pressure transducer 146 includes the user's motion, the user's presence on the surface of the bed 112, the user's weight, the user's cardiac arrhythmias, and apnea. Taking user presence detection as an example, the pressure transducer 146 can be used to detect the user's presence on the bed 112, for example, by determining the total pressure change and / or by one or more of a respiratory rate signal, a heart rate signal, and / or other biometric signals. For example, a simple pressure detection process can identify an increase in pressure as an indication that the user is present on the bed 112. As another example, if the detected pressure increases above a specified threshold (so as to indicate that a person or other object above a certain weight is positioned on the bed 112), the processor 136 can determine that the user is present on the bed 112. As yet another example, the processor 136 can identify an increase in pressure in conjunction with detecting slight, rhythmic fluctuations in pressure as corresponding to the user's presence on the bed 112. The presence of rhythmic fluctuations can be identified as being caused by the user's breathing or heart rate (or both). Detection of breathing or heartbeat can differentiate between the presence of a user on the bed and another object (such as a suitcase) being placed on the bed.

[0048] In some implementations, fluctuations in pressure may be measured at the pump 120. For example, one or more pressure sensors may be located within one or more cavities of the pump 120 to detect fluctuations in pressure within the pump 120. Fluctuations in pressure detected at the pump 120 may indicate fluctuations in pressure in one or both of the chambers 114A and 114B. One or more sensors located at the pump 120 may be in fluid communication with one or both of the chambers 114A and 114B, and the sensors may be operable to determine the pressure within the chambers 114A and 114B. The control box 124 may be configured to determine at least one vital sign (e.g., heart rate, respiratory rate) based on the pressure within the chamber 114A or chamber 114B.

[0049] In some implementations, the control box 124 can analyze the pressure signals detected by one or more pressure sensors to determine the heart rate, breathing rate, and / or other vital signs of the user lying or sitting on the chamber 114A or chamber 114B. More specifically, when the user lies on the bed 112 positioned above the chamber 114A, each of the user's heartbeat, breathing, and other movements can generate forces on the bed 112 that are transmitted to the chamber 114A. As a result of the forces input to the chamber 114A by the user's movements, waves can propagate through the chamber 114A and enter the pump 120. The pressure sensor located at the pump 120 can detect the waves, and thus the pressure signal output by the sensor can indicate the heart rate, breathing rate, or other information about the user.

[0050] Regarding the sleep state, the airbed system 100 can determine the user's sleep state by using various biometric signals (e.g., the user's heart rate, breathing, and / or movement). When the user is sleeping, the processor 136 can receive one or more biometric signals of the user (e.g., heart rate, breathing, and movement), and determine the user's current sleep state based on the received biometric signals. In some implementations, the signal indicating the fluctuation of the pressure in one or both of chambers 114A and 114B can be amplified and / or filtered to allow more accurate detection of heart rate and breathing rate.

[0051] The control box 124 can perform a pattern recognition algorithm or other calculations based on the amplified and filtered pressure signal to determine the user's heart rate and breathing rate. For example, the algorithm or calculation can be based on the assumption that the heart rate portion of the signal has a frequency in the range of 0.5-4.0 Hz and the breathing rate portion of the signal has a frequency in the range of less than 1 Hz. The control box 124 can also be configured to determine other characteristics of the user based on the received pressure signal, such as blood pressure, tossing and turning movements, rolling movements, limb movements, weight, the presence and absence of the user and / or the identity of the user. The technology of using heart rate information, breathing rate information and other user information to monitor the user's sleep is disclosed in U.S. Patent Application Publication No. 20100170043 entitled "APPARATUS FOR MONITORING VITAL SIGNS" by Steven J. Young et al., and the entire contents of the U.S. patent application are incorporated herein by reference.

[0052] For example, pressure transducer 146 may be used to monitor the air pressure in chambers 114A and 114B of bed 112. If the user on bed 112 is not moving, changes in air pressure in chambers 114A or 114B may be relatively minimal and may be attributable to breathing and / or heartbeat. However, when the user on bed 112 moves, the air pressure in the mattress may fluctuate by a much greater amount. Thus, the pressure signal generated by pressure transducer 146 and received by processor 136 may be filtered and indicated as corresponding to motion, heartbeat, or breathing.

[0053] In some implementations, rather than performing data analysis in the control box 124 with the processor 136, a digital signal processor (DSP) may be provided to analyze the data collected by the pressure transducer 146. Alternatively, the data collected by the pressure transducer 146 may be sent to a cloud-based computing system for remote analysis.

[0054] In some implementations, the example airbed system 100 also includes a temperature controller configured to increase, decrease, or maintain the temperature of the bed, for example, for the comfort of the user. For example, a pad can be placed on top of or as part of the bed 112, or can be placed on top of or as part of one or both of chambers 114A and 114B. Air can be pushed through the pad and exhausted to cool the user of the bed. Conversely, the pad may include a heating element that can be used to keep the user warm. In some implementations, the temperature controller can receive a temperature reading from the pad. In some implementations, separate pads are used for different sides of the bed 112 (e.g., corresponding to the positions of chambers 114A and 114B) to provide different temperature controls for different sides of the bed.

[0055] In some implementations, a user of the airbed system 100 can use an input device (e.g., remote control 122) to input a desired temperature for the surface of the bed 112 (or for a portion of the surface of the bed 112). The desired temperature can be encapsulated in a command data structure that includes the desired temperature and identifies the temperature controller as the desired component to be controlled. The command data structure can then be transmitted to the processor 136 via Bluetooth or another suitable communication protocol. In multiple examples, the command data structure is encrypted before being transmitted. The temperature controller can then configure its elements to increase or decrease the temperature of the cushion based on the temperature input into the remote control 122 by the user.

[0056] In some implementations, data can be transmitted from the components back to the processor 136 or to one or more display devices, such as the display 126. For example, the current temperature determined by a sensor element of a temperature controller, the pressure of the bed, the current positioning of the base, or other information can be transmitted to the control box 124. The control box 124 can then transmit the received information to the remote control 122, where the received information can be displayed to the user (e.g., on the display 126).

[0057] In some implementations, the example airbed system 100 also includes an adjustable base and an articulation controller configured to adjust the position of a bed (e.g., bed 112) by adjusting the adjustable base supporting the bed. For example, the articulation controller can adjust the bed 112 from a flat position to a position in which the head portion of the mattress of the bed is tilted upward (e.g., to facilitate a user sitting up in bed and / or watching television). In some implementations, the bed 112 includes multiple sections that are individually articulatable. For example, portions of the bed corresponding to the positions of chambers 114A and 114B can be articulated independently relative to each other to allow a person positioned on the surface of the bed 112 to rest in a first position (e.g., a flat position) while a second person rests in a second position (e.g., an inclined position with the head raised at an angle relative to the waist). In some implementations, separate positions can be set for two different beds (e.g., two single beds placed next to each other). The base of the bed 112 can include more than one area that can be adjusted independently. The articulation controller may also be configured to provide different levels of massage to one or more users on the bed 112 .

[0058] Example of a bed in a bedroom environment

[0059] Figure 3An example environment 300 is shown that includes a bed 302 that communicates with devices located in and around the home. In the example shown, the bed 302 includes a pump 304 for controlling the air pressure within two air chambers 306a and 306b (as described above with respect to air chambers 114A-114B). The pump 304 further includes circuitry for controlling the inflation and deflation functions performed by the pump 304. The circuitry is also programmed to detect fluctuations in the air pressure of the air chambers 306a-b and use the detected fluctuations in air pressure to identify a user 308 in bed, a sleeping state of the user 308, movement of the user 308, and biometric signals of the user 308, such as heart rate and breathing rate. In the example shown, the pump 304 is located within the support structure of the bed 302, and a control circuit 334 for controlling the pump 304 is integrated with the pump 304. In some implementations, the control circuit 334 is physically separated from the pump 304 and communicates with the pump 304 wirelessly or by wire. In some implementations, the pump 304 and / or the control circuit 334 are located outside of the bed 302. In some implementations, various control functions can be performed by systems located at different physical locations. For example, circuitry for controlling the action of the pump 304 can be located within a pump housing of the pump 304, while control circuitry 334 for performing other functions associated with the bed 302 can be located in another portion of the bed 302 or outside of the bed 302. As another example, the control circuitry 334 located within the pump 304 can communicate with the control circuitry 334 at a remote location via a LAN or WAN (e.g., the Internet). As yet another example, the control circuitry 334 can be included in a Figure 1 and Figure 2 in the control box 124 .

[0060] In some implementations, one or more devices other than or in addition to the pump 304 and the control circuit 334 can be used to identify a user in bed, a sleep state, movement, and biometric signals. For example, the bed 302 may also include a second pump in addition to the pump 304, each of which is connected to a corresponding air chamber in the air chambers 306a-b. For example, the pump 304 can be fluidly connected to the air chamber 306b to control the inflation and deflation of the air chamber 306b and detect user signals of a user located above the air chamber 306b, such as being in bed, a sleep state, movement, and biometric signals, while the second pump is fluidly connected to the air chamber 306a to control the inflation and deflation of the air chamber 306a and detect user signals of a user located above the air chamber 306a.

[0061] As another example, the bed 302 may include one or more pressure-sensitive pads or surface portions operable to detect movement, including a user in bed, user motion, breathing, and heart rate. For example, a first pressure-sensitive pad may be incorporated into the surface of the bed 302 above the left portion of the bed 302 where a first user typically resides during sleep, and a second pressure-sensitive pad may be incorporated into the surface of the bed 302 above the right portion of the bed 302 where a second user typically resides during sleep. Movement detected by the one or more pressure-sensitive pads or surface portions may be used by the control circuit 334 to identify a user sleep state, a user in bed, or a biometric signal.

[0062] In some implementations, information detected by the bed (e.g., motion information) is processed by control circuitry 334 (e.g., control circuitry 334 integrated with pump 304) and provided to one or more user devices, such as user device 310, for presentation to user 308 or other users. Figure 3 In the example depicted in FIG, the user device 310 is a tablet device; however, in some implementations, the user device 310 may be a personal computer, a smart phone, a smart television (e.g., the television 312), or other user device capable of wired or wireless communication with the control circuit 334. The user device 310 may communicate with the control circuit 334 of the bed 302 over a network or through direct point-to-point communication. For example, the control circuit 334 may be connected to a LAN (e.g., through a Wi-Fi router) and communicate with the user device 310 through the LAN. As another example, the control circuit 334 and the user device 310 may both be connected to the Internet and communicate through the Internet. For example, the control circuit 334 may be connected to the Internet through a WiFi router, and the user device 310 may be connected to the Internet through communication with a cellular communication system. As another example, the control circuit 334 may communicate directly with the user device 310 through a wireless communication protocol (e.g., Bluetooth). As yet another example, the control circuit 334 may communicate with the user device 310 through a wireless communication protocol (e.g., ZigBee, Z-Wave, infrared, or another wireless communication protocol suitable for the application). As another example, control circuit 334 may communicate with user device 310 via a wired connection (eg, a USB connector, serial / RS232, or another wired connection appropriate for the application).

[0063] The user device 310 may display various information and statistics related to sleep or the interaction of the user 308 with the bed 302. For example, the user interface displayed by the user device 310 may present information including the following items: the amount of sleep of the user 308 over a period of time (e.g., one night, one week, one month, etc.), the amount of deep sleep, the ratio of deep sleep to restless sleep, the time that elapsed between the user 308 going to bed and the user 308 falling asleep, the total amount of time spent in the bed 302 over a given time period, the heart rate of the user 308 over a period of time, the breathing rate of the user 308 over a period of time, or other information related to the user 308 or one or more other users of the bed 302 interacting with the bed 302. In some implementations, information of multiple users may be presented on the user device 310, for example, information of a first user positioned above the air chamber 306a may be presented together with information of a second user positioned above the air chamber 306b. In some implementations, the information presented on the user device 310 may vary according to the age of the user 308. For example, the information presented on the user device 310 may evolve based on the age of the user 308 , such that different information is presented on the user device 310 when the user 308 is aged as a child or as an adult.

[0064] The user device 310 may also be used as an interface to the control circuitry 334 of the bed 302 to allow the user 308 to input information. The information input by the user 308 may be used by the control circuitry 334 to provide better information to the user or to provide various control signals for controlling the functionality of the bed 302 or other devices. For example, the user may input information such as weight, height, and age, and the control circuitry 334 may use this information to provide the user 308 with a comparison of the user's tracked sleep information with the sleep information of other persons having a similar weight, height, and / or age to the user 308. As another example, the user 308 may use the user device 310 as an interface to perform the following actions: for controlling the air pressure of the air chambers 306a and 306b, for controlling various recline or tilt positions of the bed 302, for controlling the temperature of one or more surface temperature control devices of the bed 302, or for allowing the control circuitry 334 to generate control signals for other devices (as described in more detail below).

[0065] In some implementations, the control circuit 334 of the bed 302 (e.g., the control circuit 334 integrated into the pump 304) can communicate with other first, second, or third-party devices or systems in addition to or in place of the user device 310. For example, the control circuit 334 can communicate with the television 312, the lighting system 314, the thermostat 316, the security system 318, or other household devices (e.g., the oven 322, the coffee maker 324, the lamp 326, and the nightlight 328). Other examples of devices and / or systems with which the control circuit 334 can communicate include a system for controlling blinds 330, one or more devices for detecting or controlling the state of one or more doors 332 (e.g., detecting whether the door is open, detecting whether the door is locked, or automatically locking the door), and a system for controlling the garage door 320 (e.g., a control circuit 334 integrated with a garage door opener for identifying the open or closed state of the garage door 320 and for causing the garage door opener to open or close the garage door 320). Communication between the control circuit 334 of the bed 302 and other devices can occur over a network (e.g., a local area network or the Internet) or as a point-to-point communication (e.g., using Bluetooth, radio communication, or a wired connection). In some implementations, the control circuit 334 of different beds 302 can communicate with different sets of devices. For example, a children's bed may not communicate with the same devices and / or control the same devices as an adult bed. In some embodiments, the bed 302 can vary based on the age of the user, such that the control circuit 334 of the bed 302 communicates with different devices based on the age of the user.

[0066] The control circuitry 334 may receive information and input from other devices / systems and use the received information and input to control the actions of the bed 302 or other devices. For example, the control circuitry 334 may receive information from the thermostat 316 indicating the current ambient temperature of the house or room in which the bed 302 is located. The control circuitry 334 may use the received information (along with other information) to determine whether the temperature of all or part of the surface of the bed 302 should be raised or lowered. The control circuitry 334 may then cause the heating or cooling mechanism of the bed 302 to raise or lower the temperature of the surface of the bed 302. For example, the user 308 may indicate a desired sleeping temperature of 74 degrees, while the second user of the bed 302 indicates a desired sleeping temperature of 72 degrees. The thermostat 316 may indicate to the control circuitry 334 that the current temperature of the bedroom is 72 degrees. The control circuit 334 can recognize that the user 308 has indicated a desired sleeping temperature of 74 degrees, and send a control signal to the heating pad located on the user 308 side of the bed to raise the temperature of the portion of the surface of the bed 302 on which the user 308 is located to raise the temperature of the sleeping surface of the user 308 to the desired temperature.

[0067] The control circuit 334 may also generate control signals that control other devices and propagate the control signals to the other devices. In some implementations, control signals are generated based on information collected by the control circuit 334, including information related to user interactions of the user 308 and / or one or more other users with the bed 302. In some implementations, when generating control signals, information collected from one or more other devices other than the bed 302 is used. For example, when generating control signals for various devices that communicate with the control circuit 334 of the bed 302, information related to environmental events (e.g., ambient temperature, ambient noise level, and ambient light level), time of day, time of year, day of the week, or other information may be used. For example, information about the time of day may be combined with information about the movement of the user 308 and the user 308 being in bed to generate control signals for the lighting system 314. In some implementations, instead of or in addition to providing control signals for one or more other devices, the control circuitry 334 may provide the collected information (e.g., information related to user movement, user presence in bed, user sleep state, or biometric signals of user 308) to one or more other devices to allow the one or more other devices to utilize the collected information in generating control signals. For example, the control circuitry 334 of the bed 302 may provide information related to user interaction of the user 308 with the bed 302 to a central controller (not shown), which may use the provided information to generate control signals for various devices (including the bed 302).

[0068] Still reference Figure 3, the control circuit 334 of the bed 302 can generate control signals for controlling the actions of other devices in response to information collected by the control circuit 334 (including the user 308 being in bed, the sleep state of the user 308, and other factors), and transmit the control signals to the other devices. For example, the control circuit 334 integrated with the pump 304 can detect characteristics of the mattress of the bed 302, such as an increase in pressure in the air chamber 306b, and use the detected increase in air pressure to determine that the user 308 is present on the bed 302. In some implementations, the control circuit 334 can identify the heart rate or breathing rate of the user 308 to identify that the increase in pressure is due to the person sitting, lying, or otherwise resting on the bed 302 rather than due to an inanimate object (such as a suitcase) being placed on the bed 302. In some implementations, information indicating that the user is in bed is combined with other information to identify the current or future possible state of the user 308. For example, a user being in bed detected at 11:00 a.m. may indicate that the user is sitting up in bed (e.g., tying her shoes or reading a book) and is not planning to sleep, whereas a user being in bed detected at 10:00 p.m. may indicate that user 308 is in bed at night and plans to fall asleep soon. As another example, if control circuitry 334 detects that user 308 has left bed 302 at 6:30 a.m. (e.g., indicating that user 308 has woken up during the day) and later detects user 308 in bed at 7:30 a.m., control circuitry 334 may use the information that the newly detected user being in bed may be temporary (e.g., when user 308 is tying her shoes before going to work) rather than an indication that user 308 intends to stay in bed 302 for an extended period of time.

[0069] In some implementations, the control circuitry 334 can use the collected information (including information related to the user interaction of the user 308 with the bed 302, as well as environmental information, time information, and input received from the user) to identify the usage pattern of the user 308. For example, the control circuitry 334 can use information collected over a period of time indicating the user 308 in bed and its sleeping state to identify the user's sleep pattern. For example, the control circuitry 334 can identify that the user 308 typically goes to bed between 9:30 pm and 10:00 pm, typically falls asleep between 10:00 pm and 11:00 pm, and typically wakes up between 6:30 am and 6:45 am based on information collected over a week indicating the user in bed and biometrics about the user 308. The control circuitry 334 can use the user's identified pattern to better process and identify the user interaction of the user 308 with the bed 302.

[0070] For example, given the above exemplary user in bed, sleeping, and waking patterns of user 308, if user 308 is detected as being in bed at 3:00 p.m., control circuitry 334 may determine that the user is only temporarily in bed, and use this determination to generate control signals that are different from the control signals that would be generated if control circuitry 334 determined that user 308 is in bed overnight. As another example, if control circuitry 334 detects that user 308 is getting out of bed at 3:00 a.m., control circuitry 334 may use the identified patterns of user 308 to determine that the user is only getting out of bed temporarily (e.g., getting out of bed to use the restroom or get a glass of water) and is not getting out of bed for the day. Conversely, if control circuitry 334 identifies that user 308 is getting out of bed 302 at 6:40 a.m., control circuitry 334 may determine that the user is getting out of bed for the day, and generate a different set of control signals than would be generated if it was determined that user 308 was only getting out of bed temporarily (as would be the case if user 308 was getting out of bed 302 at 3:00 a.m.). For other users 308, getting out of bed 302 at 3:00 AM may be a normal waking time that control circuitry 334 may learn of and respond accordingly.

[0071] As described above, the control circuit 334 of the bed 302 can generate control signals for control functions of various other devices. The control signals can be generated based at least in part on the detected interaction of the user 308 with the bed 302 and other information including time, date, temperature, etc. For example, the control circuit 334 can communicate with the television 312, receive information from the television 312, and generate control signals for controlling functions of the television 312. For example, the control circuit 334 can receive an indication from the television 312 that the television 312 is currently on. If the television 312 is located in a different room from the bed 302, the control circuit 334 can generate a control signal to turn off the television 312 when a determination is made that the user 308 has gone to bed for the night. For example, if the presence of the user 308 on the bed 302 is detected during a specific time range (e.g., between 8:00 p.m. and 7:00 a.m.) and lasts for a period of time longer than a threshold time period (e.g., 10 minutes), the control circuit 334 can use this information to determine that the user 308 has gone to bed for the night. If television 312 is on (as indicated by communications received by control circuitry 334 of bed 302 from television 312), control circuitry 334 may generate a control signal to turn off television 312. The control signal may then be transmitted to the television (e.g., via a directional communication link between television 312 and control circuitry 334 or via a network). As another example, rather than turning off television 312 in response to detecting that a user is in bed, control circuitry 334 may generate a control signal to reduce the volume of television 312 by a pre-specified amount.

[0072] As another example, upon detecting that the user 308 has left the bed 302 during a specified time range (e.g., between 6:00 a.m. and 8:00 a.m.), the control circuitry 334 may generate a control signal to cause the television 312 to turn on and tune to a pre-specified channel (e.g., the user 308 has indicated a preference to watch the morning news upon waking up in the morning). The control circuitry 334 may generate a control signal and transmit the signal to the television 312 to cause the television 312 to turn on and tune to a desired station (which may be stored at the control circuitry 334, the television 312, or another location). As another example, upon detecting that the user 308 has gotten out of bed during the day, the control circuitry 334 may generate a control signal and transmit the control signal to cause the television 312 to turn on and begin playing a previously recorded program from a digital video recorder (DVR) in communication with the television 312.

[0073] As another example, if the television 312 is in the same room as the bed 302, the control circuit 334 does not turn off the television 312 in response to detecting that the user is in bed. More specifically, in response to determining that the user 308 is asleep, the control circuit 334 may generate a control signal and transmit the control signal to turn off the television 312. For example, the control circuit 334 may monitor the biometric signals (e.g., motion, heart rate, breathing rate) of the user 308 to determine that the user 308 has fallen asleep. Upon detecting that the user 308 is sleeping, the control circuit 334 generates a control signal and transmits the control signal to turn off the television 312. As another example, the control circuit 334 may generate a control signal to turn off the television 312 after a threshold time period after the user 308 has fallen asleep (e.g., 10 minutes after the user has fallen asleep). As another example, after determining that the user 308 has fallen asleep, the control circuit 334 generates a control signal to reduce the volume of the television 312. As yet another example, the control circuit 334 generates and transmits control signals to cause the television to gradually reduce volume over a period of time and then turn off the television in response to determining that the user 308 is asleep.

[0074] In some implementations, the control circuit 334 can similarly interact with other media devices (e.g., computers, tablet computers, smart phones, stereo systems, etc.) For example, upon detecting that the user 308 has fallen asleep, the control circuit 334 can generate and transmit a control signal to the user device 310 to cause the user device 310 to turn off or lower the volume of a video or audio file being played by the user device 310.

[0075] Additionally, the control circuit 334 may communicate with the lighting system 314, receive information from the lighting system 314, and generate control signals for controlling the functions of the lighting system 314. For example, when a user on the bed 302 is detected on the bed during a specific time frame (e.g., between 8:00 p.m. and 7:00 a.m.) that lasts longer than a threshold time period (e.g., 10 minutes), the control circuit 334 of the bed 302 may determine that the user 308 has gone to bed for the night. In response to this determination, the control circuit 334 may generate a control signal to turn off the lights in one or more rooms other than the room in which the bed 302 is located. The control signal may then be transmitted to the lighting system 314 and executed by the lighting system 314 to turn off the lights in the indicated rooms. For example, the control circuit 334 may generate and transmit a control signal to turn off the lights in all common rooms but not in other bedrooms. As another example, in response to determining that the user 308 goes to bed at night, the control signal generated by the control circuit 334 may indicate that the lights in all rooms except the room where the bed 302 is located are to be turned off, and one or more lights located outside the house containing the bed 302 are to be turned on. In addition, in response to determining that the user 308 is in bed or the user 308 is asleep, the control circuit 334 may generate a control signal and transmit the control signal to turn on the night light 328. As another example, the control circuit 334 may generate a first control signal for turning off a first group of lights (e.g., lights in a common room) in response to detecting that the user is in bed, and a second control signal for turning off a second group of lights (e.g., lights in a room where the bed 302 is located) in response to detecting that the user 308 is asleep.

[0076] In some implementations, in response to determining that the user 308 has gone to bed for the night, the control circuitry 334 of the bed 302 can generate a control signal to cause the lighting system 314 to implement a sunset lighting scheme in the room where the bed 302 is located. The sunset lighting scheme can include, for example, dimming the lights (either gradually over time or suddenly) in conjunction with changing the color of the lights in the bedroom environment (e.g., adding an amber hue to the lighting in the bedroom). When the control circuitry 334 has determined that the user 308 has gone to bed for the night, the sunset lighting scheme can help the user 308 fall asleep.

[0077] The control circuit 334 may also be configured to implement a sunrise lighting scheme when the user 308 wakes up in the morning. The control circuit 334 may determine that the user 308 is awake during the day, for example, by detecting that the user 308 has gotten up from the bed 302 (i.e., is no longer in the bed 302) during a specified time frame (e.g., between 6:00 a.m. and 8:00 a.m.). As another example, the control circuit 334 may monitor the user's 308 movement, heart rate, breathing rate, or other biometric signals to determine that the user 308 is awake even if the user 308 has not gotten out of bed. If the control circuit 334 detects that the user is awake during the specified time frame, the control circuit 334 may determine that the user 308 is awake during the day. For example, the specified time frame may be based on previously recorded information of the user in bed collected over a period of time (e.g., two weeks), which indicates that the user 308 typically wakes up between 6:30 a.m. and 7:30 a.m. during the day. In response to control circuitry 334 determining that user 308 is awake, control circuitry 334 may generate a control signal to cause lighting system 314 to implement a sunrise lighting scheme in the bedroom where bed 302 is located. The sunrise lighting scheme may include, for example, turning on a light (e.g., light 326 or other light in the bedroom). The sunrise lighting scheme may also include gradually increasing the level of light in the room where bed 302 is located (or in one or more other rooms). The sunrise lighting scheme may also include turning on only lights of a specified color. For example, the sunrise lighting scheme may include illuminating the bedroom with blue light to gently help user 308 wake up and become active.

[0078] In some implementations, the control circuitry 334 may generate different control signals for controlling the actions of one or more components (e.g., the lighting system 314) depending on the time of day when the user's interaction with the bed 302 is detected. For example, the control circuitry 334 may use historical user interaction information about the interactions between the user 308 and the bed 302 to determine that the user 308 typically falls asleep between 10:00 PM and 11:00 PM and typically wakes up between 6:30 AM and 7:30 AM on weekdays. The control circuitry 334 may use this information to generate a first set of control signals for controlling the lighting system 314 when the user 308 is detected as waking up at 3:00 AM and a second set of control signals for controlling the lighting system 314 when the user 308 is detected as waking up after 6:30 AM. For example, if the user 308 wakes up before 6:30 AM, the control circuitry 334 may turn on lights that guide the user 308 on a route to the bathroom. As another example, if user 308 wakes up before 6:30 AM, control circuitry 334 may turn on lights that guide user 308 to the kitchen (this may include, for example, turning on night light 328, turning on under bed lighting, or turning on light 326).

[0079] As another example, if the user 308 wakes up after 6:30 a.m., the control circuitry 334 may generate control signals to cause the lighting system 314 to initiate a sunrise lighting scheme, or to turn on one or more lights in the bedroom and / or other rooms. In some implementations, if the user 308 is detected as waking up before the user's 308 designated morning wake-up time, the control circuitry 334 causes the lighting system 314 to turn on dimmer lights than lights that would be turned on by the lighting system 314 if the user 308 was detected as waking up after the designated morning wake-up time. Having the lighting system 314 turn on dimmed lights only when the user 308 wakes up during the night (i.e., before the user's 308 normal wake-up time) may prevent other occupants of the house from being awakened by the lights, while still allowing the user 308 to be seen in order to reach the bathroom, kitchen, or another destination within the house.

[0080] The historical user interaction information about the interaction between the user 308 and the bed 302 can be used to identify the user's sleeping and waking time frames. For example, the time and sleep time of the user in bed can be determined within a set time period (e.g., two weeks, a month, etc.). The control circuit 334 can then identify the typical time range or time frame when the user 308 goes to bed, the typical time frame when the user 308 falls asleep, and the typical time frame when the user 308 wakes up (and in some cases, different time frames when the user 308 wakes up and when the user 308 actually gets out of bed). In some implementations, buffer times can be added to these time frames. For example, if the user is identified as generally going to bed between 10:00 p.m. and 10:30 p.m., a half-hour buffer in each direction can be added to the time frame so that any detection of the user going to bed between 9:30 p.m. and 11:00 p.m. is interpreted as the user 308 going to bed at night. As another example, detection of user 308 being in bed starting half an hour before the earliest typical time that user 308 goes to bed and extending until the user's typical wake-up time (e.g., 6:30 a.m.) can be interpreted as the user going to bed at night. For example, if the user typically goes to bed between 10:00 p.m. and 10:30 p.m., if the user is sensed to be in bed at 12:30 a.m. during a night, this can be interpreted as the user going to bed at night, even though this is outside the typical time frame for the user to go to bed because it occurs before the user's normal wake-up time. In some implementations, different time frames are identified for different times of the year (e.g., earlier bedtimes in winter versus summer) or different times of the week (e.g., the user wakes up earlier on weekdays than on weekends).

[0081] The control circuit 334 can distinguish between the user 308 going to bed during an extended period of time (e.g., at night) and being present in the bed 302 during a shorter period of time (e.g., a nap) by sensing the duration of the user 308 being in bed. In some examples, the control circuit 334 can distinguish between the user 308 going to bed during an extended period of time (e.g., at night) and being present in the bed during a shorter period of time (e.g., a nap) by sensing the duration of the user 308's sleep. For example, the control circuit 334 can set a time threshold, whereby if the user 308 is sensed to be in the bed 302 for a period of time longer than the threshold, the user 308 is considered to be sleeping at night. In some examples, the threshold can be about 2 hours, whereby if the user 308 is sensed to be in the bed 302 for more than 2 hours, the control circuit 334 records this as an extended sleep event. In other examples, the threshold can be greater than or less than two hours.

[0082] The control circuit 334 may detect repeated extended sleep events to automatically determine a typical bed time range for the user 308, without requiring the user 308 to input a bed time range. This may allow the control circuit 334 to accurately estimate when the user 308 is likely to go to bed during an extended sleep event, regardless of whether the user 308 typically goes to bed using a regular sleep schedule or an unconventional sleep schedule. The control circuit 334 may then use the knowledge of the bed time range of the user 308 to control one or more components (including components of the bed 302 and / or non-bed peripherals) differently based on being sensed in bed during or outside of the bed time range.

[0083] In some examples, the control circuit 334 can automatically determine the bedtime range for the user 308 without user input. In some examples, the control circuit 334 can automatically and in combination with user input determine the bedtime range for the user 308. In some examples, the control circuit 334 can directly set the bedtime range based on user input. In some examples, the control circuit 334 can associate different bedtimes with different days of the week. In each of these examples, the control circuit 334 can control one or more components (e.g., the lighting system 314, the thermostat 316, the security system 318, the oven 322, the coffee maker 324, the lamp 326, and the night light 328) based on the sensed in-bed and bedtime range.

[0084] The control circuit 334 may further communicate with the thermostat 316, receive information from the thermostat 316, and generate control signals for controlling the functions of the thermostat 316. For example, depending on the sleep state of the user 308 or in bed, the user 308 may indicate a user preference for different temperatures at different times. For example, the user 308 may prefer an ambient temperature of 72 degrees when waking up, an ambient temperature of 70 degrees when in bed but awake, and an ambient temperature of 68 degrees when sleeping. The control circuit 334 of the bed 302 may detect that the user 308 is in bed at night and determine that the user 308 is sleeping in the bed at night. In response to this determination, the control circuit 334 may generate a control signal to cause the thermostat to change the temperature to 70 degrees. The control circuit 334 may then transmit the control signal to the thermostat 316. When it is detected that the user 308 is sleeping or asleep in the bed during the sleeping time range, the control circuit 334 may generate a control signal and transmit the control signal to cause the thermostat 316 to change the temperature to 68. The next morning, upon determining that the user was awake during the day (eg, user 308 was awake after 6:30 AM), control circuit 334 may generate and transmit a control signal to cause the thermostat to change the temperature to 72 degrees.

[0085] In some implementations, the control circuit 334 may similarly generate control signals to cause one or more heating or cooling elements on the surface of the bed 302 to change temperature at various times, either in response to user interaction with the bed 302 or at various preprogrammed times. For example, when it is detected that the user 308 has fallen asleep, the control circuit 334 may activate the heating element to raise the temperature of one side of the surface of the bed 302 to 73 degrees. As another example, when it is determined that the user 308 is getting up during the day, the control circuit 334 may turn off the heating or cooling element. As yet another example, the user 308 may preprogram various times at which the temperature at the surface of the bed should be raised or lowered. For example, the user may program the bed 302 to raise the surface temperature to 76 degrees at 10:00 p.m. and lower the surface temperature to 68 degrees at 11:30 p.m.

[0086] In some implementations, the control circuit 334 may cause the thermostat 316 to change the temperature in different rooms to different values ​​in response to detecting that the user 308 is in bed and / or the user 308 is asleep. For example, in response to determining that the user 308 is sleeping in bed at night, the control circuit 334 may generate and transmit control signals to cause the thermostat 316 to set the temperature in one or more bedrooms of the house to 72 degrees and to set the temperature in other rooms to 67 degrees.

[0087] The control circuit 334 may also receive temperature information from the thermostat 316 and use the temperature information to control the functions of the bed 302 or other devices. For example, as discussed above, the control circuit 334 may adjust the temperature of a heating element included in the bed 302 in response to the temperature information received from the thermostat 316.

[0088] In some implementations, the control circuit 334 can generate and transmit control signals for controlling other temperature control systems. For example, in response to determining that the user 308 wakes up during the day, the control circuit 334 can generate and transmit control signals for activating floor heating elements. For example, the control circuit 334 can turn on the floor heating system of the master bedroom in response to determining that the user 308 wakes up during the day.

[0089] The control circuit 334 may additionally communicate with the security system 318, receive information from the security system 318, and generate control signals for controlling the functions of the security system 318. For example, in response to detecting that the user 308 is sleeping in the bed at night, the control circuit 334 may generate control signals to enable or disarm the security system 318. The control circuit 334 may then transmit the control signals to the security system 318 to enable the security system 318. As another example, the control circuit 334 may generate and transmit control signals to disable the security system 318 in response to determining that the user 308 is awake during the day (e.g., the user 308 is no longer present in the bed 302 after 6:00 a.m.). In some implementations, the control circuit 334 may generate and transmit a first set of control signals to enable a first set of security features for the security system 318 in response to detecting that the user 308 is in the bed, and may generate and transmit a second set of control signals to enable a second set of security features for the security system 318 in response to detecting that the user 308 has fallen asleep.

[0090] In some implementations, the control circuit 334 can receive an alert from the security system 318 (and / or a cloud service associated with the security system 318) and indicate the alert to the user 308. For example, the control circuit 334 can detect that the user 308 is sleeping in the bed at night, and in response generate and transmit a control signal to enable or disable the security system 318. The security system can then detect a security breach (e.g., someone opens the door 332 without entering a security code, or someone opens a window when the security system 318 is enabled). The security system 318 can communicate the security breach to the control circuit 334 of the bed 302. In response to receiving the communication from the security system 318, the control circuit 334 can generate a control signal to alert the user 308 of the security breach. For example, the control circuit 334 can cause the bed 302 to vibrate. As another example, the control circuit 334 can articulate a portion of the bed 302 (e.g., raise or lower the head section) in order to wake the user 308 and alert the user of the security breach. As another example, the control circuit 334 may generate and transmit a control signal to cause the light 326 to flash intermittently at regular intervals to alert the user 308 of a security breach. As another example, the control circuit 334 may alert the user 308 of one bed 302 about a security breach in another bed's bedroom, such as an open window in a child's bedroom. As another example, the control circuit 334 may send an alert to a garage door controller (e.g., to close and lock the door). As another example, the control circuit 334 may send an alert that security is about to be released.

[0091] The control circuit 334 may additionally generate and transmit control signals for controlling the garage door 320 and receive information indicating the state (i.e., open or closed) of the garage door 320. For example, in response to determining that the user 308 is sleeping in the bed at night, the control circuit 334 may generate and transmit a request to a garage door opener or another device capable of sensing whether the garage door 320 is open. The control circuit 334 may request information about the current state of the garage door 320. If the control circuit 334 receives a response (e.g., from the garage door opener) indicating that the garage door 320 is open, the control circuit 334 may either notify the user 308 that the garage door is open or generate a control signal to cause the garage door opener to close the garage door 320. For example, the control circuit 334 may send a message to the user device 310 indicating that the garage door is open. As another example, the control circuit 334 may cause the bed 302 to vibrate. As yet another example, the control circuit 334 can generate and transmit a control signal to cause the lighting system 314 to flash one or more lights in the bedroom to alert the user 308 to check the user device 310 for an alarm (in this example, an alarm that the garage door 320 is open). Alternatively or additionally, the control circuit 334 can generate and transmit a control signal to cause the garage door opener to close the garage door 320 in response to recognizing that the user 308 is sleeping in the bed at night and the garage door 320 is open. In some implementations, the control signal can vary according to the age of the user 308.

[0092] The control circuit 334 may similarly send and receive communications for controlling or receiving status information associated with the door 332 or the oven 322. For example, upon detecting that the user 308 is sleeping in the bed at night, the control circuit 334 may generate and transmit a request to a device or system for detecting the status of the door 332. The information returned in response to the request may indicate various states of the door 332, such as open, closed but not locked, or closed and locked. If the door 332 is open or closed but not locked, the control circuit 334 may warn the user 308 of the state of the door, for example, in the manner described above with reference to the garage door 320. Alternatively or in addition to warning the user 308, the control circuit 334 may also generate and transmit a control signal to lock the door 332 or close and lock it. If the door 332 is closed and locked, the control circuit 334 may determine that no further action is required.

[0093] Similarly, upon detecting that user 308 is sleeping in bed at night, control circuit 334 may generate and transmit a request to oven 322 to request the state of oven 322 (e.g., on or off). If oven 322 is on, control circuit 334 may alert user 308 and / or generate and transmit a control signal to turn oven 322 off. If oven is already off, control circuit 334 may determine that no further action is required. In some implementations, different alerts may be generated for different events. For example, control circuit 334 may cause light 326 (or one or more other lights, via lighting system 314) to: flash in a first pattern if security system 318 detects a breach; flash in a second pattern if garage door 320 is open; flash in a third pattern if door 332 is open; flash in a fourth pattern if oven 322 is on; and flash in a fifth pattern if another bed detects that the user of the bed has gotten out of bed (e.g., as sensed by a sensor in child's bed 302 that user 308's child has gotten out of bed in the middle of the night). Other examples of alarms that may be processed by control circuit 334 of bed 302 and communicated to the user include a smoke detector that detects smoke (and communicates this detection of smoke to control circuit 334), a carbon monoxide tester that detects carbon monoxide, a heater failure, or an alarm from any other device that is capable of communicating with control circuit 334 and detecting an event that should be brought to the attention of user 308.

[0094] The control circuit 334 may also communicate with a system or device for controlling the state of the blinds 330. For example, in response to determining that the user 308 is sleeping in bed at night, the control circuit 334 may generate and transmit a control signal to close the blinds 330. As another example, in response to determining that the user 308 is up during the day (e.g., the user has been up after 6:30 a.m.), the control circuit 334 may generate and transmit a control signal to open the blinds 330. Conversely, if the user 308 is up before the normal wake-up time of the user 308, the control circuit 334 may determine that the user 308 is not awake during the day and does not generate a control signal for opening the blinds 330. As yet another example, the control circuit 334 may generate and transmit a control signal that closes the first set of blinds in response to detecting that the user 308 is in bed, and closes the second set of blinds in response to detecting that the user 308 is asleep.

[0095] The control circuit 334 may generate and transmit control signals for controlling functions of other household devices in response to detecting user interaction with the bed 302. For example, in response to determining that the user 308 wakes up during the day, the control circuit 334 may generate and transmit control signals to the coffee maker 324 to cause the coffee maker 324 to begin brewing coffee. As another example, the control circuit 334 may generate and transmit control signals to the oven 322 to cause the oven to begin preheating (for users who like freshly baked bread in the morning). As another example, the control circuit 334 may use information indicating that the user 308 wakes up during the day along with information indicating that the current time of year is winter and / or the outside temperature is below a threshold to generate and transmit control signals to turn on a car engine block heater.

[0096] As another example, control circuit 334 may generate and transmit a control signal to cause one or more devices to enter a sleep mode in response to detecting that user 308 is in bed or in response to detecting that user 308 is asleep. For example, control circuit 334 may generate a control signal to cause a mobile phone of user 308 to switch into a sleep mode. Control circuit 334 may then transmit the control signal to the mobile phone. Later, upon determining that user 308 is getting up during the day, control circuit 334 may generate and transmit a control signal to cause the mobile phone to switch out of the sleep mode.

[0097] In some implementations, the control circuit 334 can communicate with one or more noise control devices. For example, when it is determined that the user 308 is sleeping in the bed at night or the user 308 is asleep, the control circuit 334 can generate and transmit a control signal to activate one or more noise cancellation devices. The noise cancellation device can be included as part of the bed 302 or located in the bedroom with the bed 302. As another example, when it is determined that the user 308 is sleeping in the bed at night or the user 308 is asleep, the control circuit 334 can generate and transmit a control signal to turn the volume on, off, increase or decrease for one or more sound generating devices (e.g., a stereo system radio, a computer, a tablet computer, etc.).

[0098] In addition, the functions of the bed 302 are controlled by the control circuit 334 in response to the user's interaction with the bed 302. For example, the bed 302 may include an adjustable base and an articulated motion controller configured to adjust the positioning of one or more parts of the bed 302 by adjusting the adjustable base supporting the bed. For example, the articulated motion controller can adjust the bed 302 from a flat position to a position in which the head portion of the mattress of the bed 302 is tilted upward (e.g., to facilitate the user to sit up in bed and / or watch a television). In some implementations, the bed 302 includes multiple sections that are individually articulated. For example, the portions of the bed corresponding to the positions of the air chambers 306a and 306b can be articulated independently from each other to allow a person positioned on the surface of the bed 302 to rest in a first position (e.g., a flat position) while a second person rests in a second position (e.g., an inclined position with the head raised at an angle relative to the waist). In some implementations, separate positions can be set for two different beds (e.g., two single beds placed next to each other). The base of bed 302 may include more than one area that can be adjusted independently. As described above, the articulated motion controller may also be configured to provide different levels of massage to one or more users on bed 302, or to vibrate the bed to transmit an alert to user 308.

[0099] The control circuit 334 may adjust the positioning (e.g., the tilt and lower positioning of the user 308 and / or another user of the bed 302) in response to the user's interaction with the bed 302. For example, the control circuit 334 may cause the articulated motion controller to adjust the bed 302 to a first tilted positioning of the user 308 in response to sensing that the user 308 is in the bed. The control circuit 334 may cause the articulated motion controller to adjust the bed 302 to a second tilted positioning (e.g., a less tilted or flat positioning) in response to determining that the user 308 is asleep. As another example, the control circuit 334 may receive a communication from the television 312 indicating that the user 308 has turned off the television 312, and in response, the control circuit 334 may cause the articulated motion controller to adjust the positioning of the bed 302 to a preferred user sleeping positioning (e.g., because the user turned off the television 312 while the user 308 was sleeping in the bed, indicating that the user 308 wishes to sleep).

[0100] In some implementations, the control circuit 334 may control the articulated motion controller to wake up one user of the bed 302 without waking up another user of the bed 302. For example, the user 308 and the second user of the bed 302 may set different wake-up times for each user (e.g., 6:30 a.m. and 7:15 a.m., respectively). When the wake-up time for the user 308 is reached, the control circuit 334 may cause the articulated motion controller to vibrate or change the positioning of only one side of the bed where the user 308 is located to wake up the user 308 without disturbing the second user. When the wake-up time for the second user is reached, the control circuit 334 may cause the articulated motion controller to vibrate or change the positioning of only one side of the bed where the second user is located. Optionally, when the second wake-up time occurs, the control circuit 334 may utilize other methods (e.g., an audio alarm or turning on a light) to wake up the second user because the user 308 is already awake and therefore will not be disturbed when the control circuit 334 attempts to wake up the second user.

[0101] Still reference Figure 3 , the control circuit 334 of the bed 302 can utilize information of the interactions of multiple users with the bed 302 to generate control signals for controlling the functions of various other devices. For example, the control circuit 334 can wait until both the user 308 and the second user are detected as being present on the bed 302 before generating control signals for, for example, enabling the security system 318 or instructing the lighting system 314 to turn off lights in various rooms. As another example, the control circuit 334 can generate a first set of control signals to cause the lighting system 314 to turn off the first set of lights when the user 308 is detected to be in bed, and generate a second set of control signals to turn off the second set of lights in response to detecting that the second user is in bed. As another example, the control circuit 334 can wait before generating a control signal to open the blinds 330 until it has been determined that both the user 308 and the second user are awake during the day. As yet another example, in response to determining that user 308 has left the bed and awakened during the day but a second user is still asleep, control circuitry 334 may generate and transmit a first set of control signals to cause coffee maker 324 to begin brewing coffee, deactivate security system 318, turn on lights 326, turn off nightlight 328, cause thermostat 316 to increase the temperature in one or more rooms to 72 degrees, and open blinds (e.g., blinds 330) in rooms other than the bedroom where bed 302 is located. Later, in response to detecting that the second user is no longer present in the bed (or the second user is awake), control circuitry 334 may generate and transmit a second set of control signals to, for example, cause lighting system 314 to turn on one or more lights in the bedroom, cause blinds in the bedroom to open, and turn television 312 to a pre-designated channel.

[0102] Example of a bed-related data processing system

[0103] Described here are examples of systems and components that can be used, for example, for data processing tasks associated with a bed. In some cases, multiple examples of a particular component or group of components are presented. Some of these examples are redundant and / or mutually exclusive alternatives. The connections between the components are shown as examples to illustrate possible network configurations for allowing communication between the components. Connections of different formats can be used as technically required or desired. Connections generally indicate logical connections that can be created in any technically feasible format. For example, a network on a motherboard can be created using a printed circuit board, a wireless data connection, and / or other types of network connections. For clarity, some logical connections are not shown. For example, for clarity, connections to a power source and / or a computer-readable memory may not be shown because many or all elements of a particular component may need to be connected to a power source and / or a computer-readable memory.

[0104] Figure 4A is a data processing system 400 (including the above data processing system) that can be associated with the bed system. Figure 1-3 4 (described in detail above) is a block diagram of an example of a system 400 (described in detail above). The system 400 includes a pump motherboard 402 and a pump daughterboard 404. The system 400 includes a sensor array 406, which may include one or more sensors configured to sense physical phenomena of the environment and / or the bed and report such sensing back to the pump motherboard 402 for, for example, analysis. The system 400 also includes a controller array 408, which may include one or more controllers configured to control logical control devices of the bed and / or the environment. The pump motherboard 400 can communicate with one or more computing devices 414 and one or more cloud services 410 via a local network, the Internet 412, or otherwise when technically appropriate. Each of these components will be described in more detail below, with some of the components having multiple example configurations.

[0105] In this example, the pump motherboard 402 and the pump daughterboard 404 are communicatively coupled. They can be conceptually described as the center or hub of the system 400, and the other components are conceptually described as branches of the system 400. In some configurations, this may mean that each branch component communicates primarily or exclusively with the pump motherboard 402. For example, the sensors in the sensor array may not be configured or may not be able to communicate directly with the corresponding controller. Alternatively, each branch component can communicate with the motherboard 402. The sensors in the sensor array 406 can report sensor readings to the motherboard 402, and in response, the motherboard 402 can determine that the controller in the controller array 408 should adjust some parameters of the logic control device or otherwise modify the state of one or more peripheral devices. In one case, if the temperature of the bed is determined to be too hot, the pump motherboard 402 can determine that the temperature controller should cool the bed down.

[0106] One advantage of a hub-and-spoke network configuration, sometimes also referred to as a star network, is the reduction of network traffic compared to, for example, a mesh network with dynamic routing. If a particular sensor generates a large continuous stream of traffic, the traffic can be transmitted to the motherboard 402 through only one branch of the network. The motherboard 402 can, for example, collate the data and compress it into a smaller data format for retransmission to be stored in the cloud service 410. In addition or alternatively, the motherboard 402 can generate a single small command message in response to the large stream to be sent along a different branch of the network. For example, if the large data stream is pressure readings transmitted from the sensor array 406 several times per second, the motherboard 402 can respond to the controller array with a single command message to increase the pressure in the air chamber. In this case, the single command message can be an order of magnitude smaller than the stream of pressure readings.

[0107] As another advantage, the hub-and-spoke network configuration can allow for a scalable network that can adapt to components being added, removed, failing, etc. This can allow, for example, more, fewer, or different sensors in sensor array 406, controllers in controller array 408, computing device 414, and / or cloud service 410. For example, if a particular sensor fails or is deprecated due to a newer version of a sensor, system 400 can be configured so that only motherboard 402 needs to be updated with the replacement sensor. This can allow, for example, product differentiation, where the same motherboard 402 can support an entry-level product with fewer sensors and controllers, a higher-value product with more sensors and controllers, and customer personalization, where customers can add components of their own choice to system 400.

[0108] Furthermore, a line of airbed products may use system 400 with different components. In applications where each airbed in a production line includes a central logic unit and pump, motherboard 402 (and optionally, daughterboard 404) may be designed to fit within a single common housing. Then, with each upgrade of a product in the product line, additional sensors, controllers, cloud services, etc. may be added. Design, manufacturing, and testing time may be reduced by designing all products in the product line from this foundation, compared to a product line where each product has a custom logic control system.

[0109] Each component discussed above can be implemented with a variety of techniques and configurations. Some examples of each component will be further discussed below. In some alternatives, two or more components of system 400 can be implemented in a single alternative component; some components can be implemented in multiple separate components; and / or some functions can be provided by different components.

[0110] Figure 4B 412 is a block diagram illustrating some of the communication paths of the data processing system 400. As previously described, the motherboard 402 and the pump daughterboard 404 can act as hubs for peripheral devices and cloud services of the system 400. In the event that the pump daughterboard 404 communicates with a cloud service or other component, the communication from the pump daughterboard 404 can be routed through the pump motherboard 402. This can, for example, allow the bed to have only a single connection to the Internet 412. The computing device 414 can also have a connection to the Internet 412, possibly through the same gateway used by the bed and / or possibly through a different gateway (e.g., a cellular service provider).

[0111] A plurality of cloud services 410 are described previously. Figure 4B As shown, some cloud services (e.g., cloud services 410d and 410e) can be configured so that the pump motherboard 402 can communicate directly with the cloud services, that is, the motherboard 402 can communicate with the cloud service 410 without having to use another cloud service 410 as an intermediary. Additionally or alternatively, some cloud services 410 (e.g., cloud service 410f) can be reachable only by the pump motherboard 402 through an intermediate cloud service (e.g., cloud service 410e). Although not shown here, some cloud services 410 can be reachable by the pump motherboard 402 either directly or indirectly.

[0112] In addition, some or all of the cloud services 410 may be configured to communicate with other cloud services. The communication may include the transmission of data and / or remote function calls according to any technically suitable format. For example, one cloud service 410 may request a copy of the data of another cloud service 410, such as for the purpose of backup, coordination, migration, or for the execution of computing or data mining. In another example, many cloud services 410 may contain data indexed according to a specific user tracked by a user account cloud 410c and / or a bed data cloud 410a. When accessing data specific to a specific user or bed, these cloud services 410 may communicate with the user account cloud 410c and / or the bed data cloud 410a.

[0113] Figure 5 is a block diagram of an example of a motherboard 402 that can be used in conjunction with a bed system (including the above-mentioned Figure 1-3 In this example, the motherboard 402 includes relatively few parts and can be limited to providing a relatively limited feature set compared to other examples described below.

[0114] The motherboard includes a power supply 500, a processor 502, and a computer memory 512. Typically, the power supply includes hardware for receiving electrical power from an external source and supplying it to the components of the motherboard 402. The power supply may include, for example, a battery pack and / or a wall outlet adapter, an AC to DC converter, a DC to AC converter, a power conditioner, a capacitor bank, and / or one or more interfaces for providing the power required by the other components of the motherboard 402 in current type, voltage, etc.

[0115] Processor 502 is generally a device for receiving input, performing logical determinations, and providing output. Processor 502 may be a central processing unit, a microprocessor, a general purpose logic circuit, an application specific integrated circuit, a combination of these, and / or other hardware for performing the desired functions.

[0116] Memory 512 is generally one or more devices for storing data. Memory 512 may include long-term stable data storage (such as on a hard disk), short-term volatile (such as on random access memory), or any other technically suitable configuration.

[0117] The motherboard 402 includes a pump controller 504 and a pump motor 506. The pump controller 504 can receive commands from the processor 502 and, in response, control the functions of the pump motor 506. For example, the pump controller 504 can receive a command from the processor 502 to increase the pressure of the air chamber by 0.3 pounds per square inch (PSI). In response, the pump controller 504 enables the valve so that the pump motor 506 is configured to pump air into the selected air chamber, and the pump motor 506 can be enabled for a period of time corresponding to 0.3PSI or until the sensor indicates that the pressure has increased by 0.3PSI. In an alternative configuration, the message can specify that the chamber should be inflated to a target PSI, and the pump controller 504 can enable the pump motor 506 until the target PSI is reached.

[0118] The valve solenoid 508 can control which air chamber the pump is connected to. In some cases, the solenoid 508 can be controlled directly by the processor 502. In some cases, the solenoid 508 can be controlled by the pump controller 504.

[0119] The remote interface 510 of the motherboard 402 may allow the motherboard 402 to communicate with other components of the data processing system. For example, the motherboard 402 may be able to communicate with one or more daughter boards, with peripheral sensors, and / or with peripheral controllers through the remote interface 510. The remote interface 510 may provide any technically suitable communication interface, including but not limited to a plurality of communication interfaces, such as WiFi, Bluetooth, and copper wired networks.

[0120] Figure 6 is a block diagram of an example of a motherboard 402 that can be used in conjunction with a bed system (including the above referenced Figure 1-3 In a data processing system associated with those systems described in Figure 5 Compared to the motherboard 402 described, Figure 6 The motherboard in a MCU can contain more components and provide more functions in some applications.

[0121] In addition to the power supply 500, processor 502, pump controller 504, pump motor 506 and valve solenoid 508, the motherboard 402 is shown as also having a valve controller 600, a pressure sensor 602, a universal serial bus (USB) stack 604, a WiFi radio device 606, a Bluetooth low energy (BLE) radio device 608, a ZigBee radio device 610, a Bluetooth radio device 612 and a computer memory 512.

[0122] Similar to the way that the pump controller 504 converts commands from the processor 502 into control signals for the pump motor 506, the valve controller 600 can convert commands from the processor 502 into control signals for the valve solenoid 508. In one example, the processor 502 can issue a command to the valve controller 600 to connect the pump to a specific air chamber in the air chamber group in the airbed. The valve controller 600 can control the positioning of the valve solenoid 508 so that the pump is connected to the indicated air chamber.

[0123] Pressure sensor 602 can read pressure readings from one or more air chambers of the airbed. Pressure sensor 602 can also perform digital sensor conditioning.

[0124] Motherboard 402 may include a set of network interfaces, including but not limited to those shown here. These network interfaces may allow the motherboard to communicate with any number of devices (including but not limited to peripheral sensors, peripheral controllers, computing devices, and devices and services connected to the Internet 412) via a wired or wireless network.

[0125] Figure 7 is a block diagram of an example of a daughter board 404 that can be used in conjunction with a bed system (including the above Figure 1-3 In some configurations, one or more daughter boards 404 may be connected to the motherboard 402. Some daughter boards 404 may be designed to offload specific and / or divided tasks from the motherboard 402. This may be advantageous, for example, if a specific task is computationally intensive, proprietary, or subject to future revisions. For example, a daughter board 404 may be used to calculate a specific sleep data metric. The metric may be computationally intensive, and calculating the sleep metric on the daughter board 404 may free up resources of the motherboard 402 when the metric is calculated. Additionally and / or optionally, the sleep metric may be subject to future revisions. In order to update the system 400 with a new sleep metric, it may be necessary to replace only the daughter board 404 that calculates the metric. In this case, the same motherboard 402 and other components may be used, eliminating the need to perform unit testing of additional components rather than just the daughter board 404.

[0126] The daughter board 404 is shown with a power supply 700, a processor 702, a computer readable memory 704, a pressure sensor 706, and a WiFi radio device 708. The processor can use the pressure sensor 706 to collect information about the pressure of one or more air chambers of the airbed. From this data, the processor 702 can execute an algorithm to calculate a sleep metric. In some examples, the sleep metric can be calculated from the pressure of only the air chamber. In other examples, the sleep metric can be calculated from one or more other sensors. In examples where different data is required, the processor 702 can receive the data from one or more appropriate sensors. These sensors can be internal to the daughter board 404, accessible through the WiFi radio device 708, or otherwise communicate with the processor 702. Once the sleep metric is calculated, the processor 702 can report the sleep metric to, for example, the motherboard 402.

[0127] Figure 8 is a block diagram of an example of a motherboard 800 without a daughterboard, which motherboard 800 can be used in a bed system (including the above Figure 1-3 In this example, motherboard 800 can execute reference Figure 6 The motherboard 402 and Figure 7 Most, all, or more of the features described for daughterboard 404 in.

[0128] Fig. 9 is a block diagram of an example of a sensor array 406 that can be used in conjunction with a bed system (including the above-mentioned Figure 1-3 In general, sensor array 406 is a conceptual grouping of some or all peripheral sensors that communicate with motherboard 402 but are not inherent to motherboard 402.

[0129] The peripheral sensors in the sensor array 406 may communicate with the motherboard 402 through one or more of the motherboard's network interfaces, including but not limited to the USB stack 1112 configured for the particular sensor, the WiFi radio 606, the Bluetooth Low Energy (BLE) radio 608, the ZigBee radio 610, and the Bluetooth radio 612. For example, a sensor that outputs readings through a USB cable may communicate through the USB stack 1112.

[0130] Some of the peripheral sensors 900 in the sensor array 406 may be sensors 900 mounted on the bed. These sensors may, for example, be embedded in the structure of the bed and sold with the bed, or subsequently fixed to the structure of the bed. Other peripheral sensors 902 and 904 may communicate with the motherboard 402, but are optionally not mounted on the bed. In some cases, the sensors 900 mounted on the bed and / or some or all of the peripheral sensors 902 and 904 may share networking hardware, including conduits, multi-wire cables or plugs containing wires from each sensor, which connect all related sensors to the motherboard 402 when fixed to the motherboard 402. In some embodiments, one, some or all of the sensors 902, 904, 906, 908 and 910 may sense one or more features of the mattress, such as pressure, temperature, light, sound and / or one or more other features of the mattress. In some embodiments, one, some or all of the sensors 902, 904, 906, 908 and 910 may sense one or more features outside the mattress. In some embodiments, pressure sensor 902 may sense the pressure of the mattress, while some or all of sensors 902, 904, 906, 908, and 910 may sense one or more characteristics of the mattress and / or external to the mattress.

[0131] Fig.10 is a block diagram of an example of a controller array 408 that may be used in conjunction with a bed system (including the above-described Figure 1-3 In general, controller array 408 is a conceptual grouping of some or all peripheral controllers that communicate with motherboard 402 but are not inherent to motherboard 402.

[0132] The peripheral controllers in the controller array 408 may communicate with the motherboard 402 through one or more of the motherboard's network interfaces, including but not limited to a USB stack 1112 configured for a particular sensor, a WiFi radio 1114, a Bluetooth Low Energy (BLE) radio 1116, a ZigBee radio 610, and a Bluetooth radio 612. For example, a controller receiving commands through a USB cable may communicate through the USB stack 1112.

[0133] Some of the controllers in the controller array 408 may be bed mounted controllers 1000, including but not limited to a temperature controller 1006, a light controller 1008 and / or a speaker controller 1010, or an air quality controller. These controllers may, for example, be embedded in the structure of the bed and sold with the bed, or subsequently fixed to the structure of the bed. Other peripheral controllers 1002 and 1004 may communicate with the motherboard 402, but are optionally not mounted to the bed. In some cases, the bed mounted controller 1000 and / or some or all of the peripheral controllers 1002 and 1004 may share networking hardware, including a conduit, multi-wire cable, or plug containing wires from each controller, which when fixed to the motherboard 402 connects all relevant controllers to the motherboard 402.

[0134] Fig.11 is a block diagram of an example of a computing device 414 that can be used in conjunction with a bed system (including the above-mentioned Figure 1-3 The computing device 414 may include, for example, a computing device used by a user of the bed. Example computing devices 414 include, but are not limited to, mobile computing devices (e.g., mobile phones, tablet computers, laptop computers) and desktop computers.

[0135] The computing device 414 includes a power source 1100, a processor 1102, and a computer-readable memory 1104. User input and output may be transmitted, for example, through a speaker 1106, a touch screen 1108, or other components not shown, such as a pointing device or a keyboard. The computing device 414 may run one or more applications 1110. These applications may include, for example, applications that allow a user to interact with the system 400. These applications may allow the user to view information about the bed (e.g., sensor readings, sleep metrics), or configure the behavior of the system 400 (e.g., setting a desired firmness for the bed, setting a desired behavior for a peripheral device). In some cases, the computing device 414 may be used in addition to or in place of the remote control 122 previously described.

[0136] Fig.12 is a block diagram of an example bed data cloud service 410a that can be used in conjunction with a bed system (including Figure 1-3 In this example, the bed data cloud service 410a is configured to collect sensor data and sleep data from a particular bed and match the sensor and sleep data with one or more users using the bed as they are generated.

[0137] The bed data cloud service 410a is shown with a network interface 1200, a communication manager 1202, server hardware 1204, and server system software 1206. In addition, the bed data cloud service 410a is shown with a user identification module 1208, a device management module 1210, a sensor data module 1212, and an advanced sleep data module 1214.

[0138] The network interface 1200 typically includes hardware and low-level software for allowing one or more hardware devices to communicate over a network. For example, the network interface 1200 may include a network card, a router, a modem, and other hardware required to allow components of the bed data cloud service 410a to communicate with each other and other destinations over, for example, the Internet 412. The communication manager 1202 typically includes hardware and software that operates on top of the network interface 1200. This includes software that initiates, maintains, and tears down network communications used by the bed data cloud service 410a. For example, this includes TCP / IP, SSL or TLS, Torrent, and other communication sessions on a local area network or a wide area network. The communication manager 1202 can also provide load balancing and other services to other elements of the bed data cloud service 410a.

[0139] The server hardware 1204 typically includes physical processing devices for instantiating and maintaining the bed data cloud service 410a. The hardware includes, but is not limited to, processors (e.g., central processing units, ASICs, graphics processors) and computer-readable memory (e.g., random access memory, stable hard disks, tape backups). One or more servers may be configured as geographically separate or connected clusters, multiple computers, or data centers.

[0140] The server system software 1206 generally includes software that runs on the server hardware 1204 to provide an operating environment for applications and services. The server system software 1206 may include an operating system that runs on a real server, virtual machines that are instantiated on a real server to create many virtual servers, and server-level operations such as data migration, redundancy, and backup.

[0141] User identification 1208 may include or reference data related to a user of a bed having an associated data processing system. For example, a user may include a customer, owner, or other user registered with bed data cloud service 410a or another service. Each user may have, for example, a unique identifier, user credentials, contact information, billing information, demographic information, or any other technically appropriate information.

[0142] The device manager 1210 may include or reference data related to a bed or a product associated with the data processing system. For example, a bed may include a product that is sold or registered with a system associated with the bed data cloud service 410a. Each bed may have, for example, a unique identifier, a model and / or serial number, sales information, geographic information, delivery information, a list of associated sensors and control peripherals, etc. In addition, one or more indexes stored by the bed data cloud service 410a may identify a user associated with the bed. For example, the index may record the beds sold to the user, the user who slept on the bed, etc.

[0143] Sensor data 1212 may record raw or compressed sensor data recorded by a bed having an associated data processing system. For example, the bed's data processing system may have a temperature sensor, a pressure sensor, and a light sensor. Readings from these sensors, either in raw form or in a format generated from the sensors' raw data (e.g., sleep metrics), may be passed by the bed's data processing system to the bed data cloud service 410a for storage in sensor data 1212. Additionally, one or more indexes stored by the bed data cloud service 410a may identify the user and / or bed associated with the sensor data 1212.

[0144] The bed data cloud service 410a can use any of its available data to generate high-level sleep data 1214. Typically, the high-level sleep data 1214 includes sleep metrics and other data generated by sensor readings. Some of these calculations can be performed in the bed data cloud service 410a rather than locally on the bed's data processing system, for example because the calculations are computationally complex or require a large amount of storage space or processor power that is not feasible on the bed's data processing system. This can help the bed system operate with a relatively simple controller and still be part of a system that performs relatively complex tasks and calculations.

[0145] Fig.13 is a block diagram of an example sleep data cloud service 410b that can be used with a bed system (including the above-mentioned sleep data cloud service 410b). Figure 1-3 In this example, the sleep data cloud service 410b is configured to record data related to the user's sleep experience.

[0146] The sleep data cloud service 410b is shown with a network interface 1300, a communication manager 1302, server hardware 1304, and server system software 1306. In addition, the sleep data cloud service 410b is shown with a user identification module 1308, a pressure sensor manager 1310, a pressure-based sleep data module 1312, a raw pressure sensor data module 1314, and a non-stress sleep data module 1316.

[0147] The pressure sensor manager 1310 may include or reference data related to the configuration and operation of the pressure sensors in the bed. For example, the data may include identifiers of the types of sensors in the particular bed, their settings and calibration data, and the like.

[0148] The pressure-based sleep data 1312 may use the raw pressure sensor data 1314 to calculate sleep metrics specifically associated with the pressure sensor data. For example, the user's presence in bed, movement, weight changes, heart rate, and breathing rate may all be determined from the raw pressure sensor data 1314. Additionally, one or more indexes stored by the sleep data cloud service 410b may identify users associated with the pressure sensors, raw pressure sensor data, and / or pressure-based sleep data.

[0149] The non-stress sleep data 1316 may use data from other sources to calculate sleep metrics. For example, user-entered preferences, light sensor readings, and sound sensor readings may all be used to track sleep data. Additionally, one or more indexes stored by the sleep data cloud service 410b may identify users associated with other sensors and / or non-stress sleep data 1316.

[0150] Fig.14 is a block diagram of an example user account cloud service 410c that can be used in conjunction with a bed system (including the above Figure 1-3 In this example, the user account cloud service 410c is configured to record a list of users and identify other data related to these users.

[0151] User account cloud service 410c is shown with network interface 1400, communication manager 1402, server hardware 1404, and server system software 1406. In addition, user account cloud service 410c is shown with user identification module 1408, purchase history module 1410, engagement module 1412, and application usage history module 1414.

[0152] The user identification module 1408 may include or reference data related to users of the bed with the associated data processing system. For example, the user may include a customer, owner, or other user registered with the user account cloud service 410a or another service. Each user may have, for example, a unique identifier, and user credentials, demographic information, or any other technically suitable information.

[0153] The purchase history module 1410 may include or reference data related to purchases made by a user. For example, the purchase data may include contact information, billing information, and salesperson information for the sale. In addition, one or more indexes stored by the user account cloud service 410c may identify the user associated with the purchase.

[0154] Engagement 1412 can track the user's interactions with the manufacturer, seller, and / or administrator of the bed and / or cloud service. The engagement data can include communications (e.g., emails, service calls), data from sales (e.g., sales receipts, configuration logs), and social network interactions.

[0155] The usage history module 1414 may contain data regarding the user's interactions with one or more applications and / or the bed's remote control. For example, a monitoring and configuration application may be distributed to run on, for example, the computing device 412. The application may log and report user interactions for storage in the application usage history module 1414. Additionally, one or more indexes stored by the user account cloud service 410c may identify the user associated with each log entry.

[0156] Fig.15 is a block diagram of an example point of sale cloud service 1500 that can be used with a bed system (including the above-mentioned Figure 1-3 In this example, the point of sale cloud service 1500 is configured to record data related to the user's purchase.

[0157] Point of sale cloud service 1500 is shown with a network interface 1502, a communications manager 1504, server hardware 1506, and server system software 1508. Additionally, point of sale cloud service 1500 is shown with a user identification module 1510, a purchase history module 1512, and a settings module 1514.

[0158] The purchase history module 1512 may include or reference data related to purchases made by the user identified in the user identification module 1510. The purchase information may include, for example, sales data, price and place of sale, delivery address, and configuration options selected by the user at the time of sale. These configuration options may include selections made by the user regarding how they would like their newly purchased bed to be set up, and may include, for example, an intended sleep schedule, a list of peripheral sensors and controllers that they have installed or will install, and the like.

[0159] The bed setup module 1514 may include or reference data related to the installation of a bed purchased by a user. The bed setup data may include, for example, the date and address at which the bed was delivered, the person to whom it was delivered, the configuration applied to the bed upon delivery, the names of the persons who will sleep in the bed, which side of the bed each person will use, etc.

[0160] The data recorded in the point of sale cloud service 1500 may be referenced by the user's bed system at a subsequent date to control functions of the bed system and / or send control signals to peripheral components based on the data recorded in the point of sale cloud service 1500. This may allow sales personnel to collect information from the user at the point of sale that subsequently facilitates automation of the bed system. In some examples, some or all aspects of the bed system may be automated with little or no need for user-entered data after the point of sale. In other examples, the data recorded in the point of sale cloud service 1500 may be used in conjunction with various additional data collected from the user-entered data.

[0161] Fig.16 is a block diagram of an example ambient cloud service 1600 that can be used in conjunction with a bed system (including the above-mentioned Figure 1-3 In this example, the environment cloud service 1600 is configured to record data related to the user's home environment.

[0162] The environmental cloud service 1600 is shown as having a network interface 1602, a communication manager 1604, server hardware 1606, and server system software 1608. In addition, the environmental cloud service 1600 is shown as having a user identification module 1610, an environmental sensor module 1612, and an environmental factor module 1614.

[0163] The environmental sensor module 1612 may include a list of sensors that the user has installed in their bed in the user identification module 1610. These sensors include any sensor that can detect environmental variables - light sensors, noise sensors, vibration sensors, thermostats, etc. In addition, the environmental sensor module 1612 may store historical readings or reports from these sensors locally or in the cloud.

[0164] Environmental factors module 1614 may include reports generated based on data in environmental sensor module 1612. For example, for a user with a light sensor with data in environmental sensor module 1612, environmental factors module 1614 may save a report indicating the frequency and duration of instances of increased lighting when the user was asleep.

[0165] In the examples discussed here, each cloud service 410 is shown as having some identical components. In various configurations, these identical components may be shared in part or in whole between services, or they may be separate. In some configurations, each service may have a separate copy of some or all components that are identical or different in some respects. In addition, these components are provided only as illustrative examples. In other examples, each cloud service may have different quantities, types, and styles of components that are technically feasible.

[0166] Fig.17 is a block diagram of an example of using a data processing system that may be associated with a bed (e.g., a bed of the bed system described herein) to automate peripheral devices around the bed. A behavior analysis module 1700 running on a pump motherboard 402 is shown here. For example, the behavior analysis module 1700 may be one or more software components stored on a computer memory 512 and executed by a processor 502. Typically, the behavior analysis module 1700 may collect data from a variety of sources (e.g., sensors, non-sensor local sources, cloud data services) and use a behavior algorithm 1702 to generate one or more actions to be taken (e.g., commands sent to a peripheral controller, data sent to a cloud service). For example, this may be useful in tracking user behavior and automating devices that communicate with the user's bed.

[0167] The behavior analysis module 1700 can collect data from any technically suitable source, for example to collect data about the characteristics of the bed, the environment of the bed, and / or the user of the bed. Some such sources include any sensor of the sensor array 406. For example, the data can provide information about the current state of the environment around the bed to the behavior analysis module 1700. For example, the behavior analysis module 1700 can access readings from the pressure sensor 902 to determine the pressure of the air chamber in the bed. Based on this reading and potentially other data, it can be determined that the user is in bed. In another example, the behavior analysis module can access the light sensor 908 to monitor the amount of light in the environment of the bed.

[0168] Similarly, the behavior analysis module 1700 can access data from cloud services. For example, the behavior analysis module 1700 can access the bed cloud service 410a to access historical sensor data 1212 and / or high-level sleep data 1214. Other cloud services 410 (including those not previously described) can be accessed by the behavior analysis module 1700. For example, the behavior analysis module 1700 can access weather report services, third-party data providers (e.g., traffic and news data, emergency broadcast data, user travel data), and / or clock and calendar services.

[0169] Similarly, the behavior analysis module 1700 can access data from non-sensor sources 1704. For example, the behavior analysis module 1700 can access a local clock and calendar service (eg, a component of the motherboard 402 or the processor 502).

[0170] The behavior analysis module 1700 can gather and prepare this data for use by one or more behavior algorithms 1702. The behavior algorithm 1702 can be used to learn the behavior of the user and / or perform some actions based on the state of the accessed data and / or the predicted user behavior. For example, the behavior algorithm 1702 can use available data (e.g., pressure sensors, non-sensor data, clock and calendar data) to create a model of when the user goes to bed each night. Later, the same or different behavior algorithm 1702 can be used to determine whether an increase in air chamber pressure may indicate that the user is going to bed, and if so, send some data to the third-party cloud service 410 and / or enable devices, such as the pump controller 504, the base actuator 1706, the temperature controller 1006, the under-bed lighting device 1011, the peripheral controller 1002, or the peripheral controller 1004, just to name a few examples.

[0171] In the example shown, the behavior analysis module 1700 and the behavior algorithm 1702 are shown as components of the motherboard 402. However, other configurations are possible. For example, the same or similar behavior analysis module and / or behavior algorithm can be run in one or more cloud services, and the resulting output can be sent to the motherboard 402, the controller in the controller array 408, or any other technically suitable receiver.

[0172] Fig.18 Examples of computing devices 1800 and examples of mobile computing devices that can be used to implement the techniques described herein are shown. Computing device 1800 is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframes, and other suitable computers. Mobile computing devices are intended to represent various forms of mobile devices, such as personal digital assistants, cellular phones, smart phones, and other similar computing devices. The components shown here, their connections and relationships, and their functions are meant to be exemplary only and are not intended to limit the implementation of the inventions described and / or claimed in this document.

[0173] The computing device 1800 includes a processor 1802, a memory 1804, a storage device 1806, a high-speed interface 1808 connected to the memory 1804 and a plurality of high-speed expansion ports 1810, and a low-speed interface 1812 connected to a low-speed expansion port 1814 and the storage device 1806. Each of the processor 1802, the memory 1804, the storage device 1806, the high-speed interface 1808, the high-speed expansion port 1810, and the low-speed interface 1812 is interconnected using various buses and can be installed on a common motherboard or in other ways as appropriate. The processor 1802 can process instructions for execution within the computing device 1800, including instructions stored in the memory 1804 or on the storage device 1806 to display graphical information of a GUI on an external input / output device (e.g., a display 1816 coupled to the high-speed interface 1808). In other implementations, multiple processors and / or multiple buses can be used as appropriate along with multiple memories and multiple types of memories. Furthermore, multiple computing devices may be connected, with each device providing portions of the necessary operations (eg, as a server bank, a group of blade servers, or a multi-processor system).

[0174] The memory 1804 stores information within the computing device 1800. In some implementations, the memory 1804 is a volatile storage unit. In some implementations, the memory 1804 is a non-volatile storage unit. The memory 1804 may also be another form of computer-readable medium, such as a magnetic disk or an optical disk.

[0175] Storage device 1806 can provide mass storage for computing device 1800. In some implementations, storage device 1806 can be or include a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid-state memory device or device array, including a device in a storage area network or other configuration. A computer program product can be tangibly embodied in an information carrier. A computer program product can also include instructions that, when executed, perform one or more methods, such as those described above. A computer program product can also be tangibly embodied in a computer or machine-readable medium (e.g., memory 1804, storage device 1806, or memory on processor 1802).

[0176] The high-speed interface 1808 manages bandwidth-intensive operations of the computing device 1800, while the low-speed interface 1812 manages less bandwidth-intensive operations. Such an allocation of functions is exemplary only. In some implementations, the high-speed interface 1808 is coupled to the memory 1804, the display 1816 (e.g., through a graphics processor or accelerator), and to a high-speed expansion port 1810 that can accept various expansion cards (not shown). In this implementation, the low-speed interface 1812 is coupled to the storage device 1806 and the low-speed expansion port 1814. The low-speed expansion port 1814, which can include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet), can 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 a router, for example, through a network adapter.

[0177] As shown in the accompanying drawings, computing device 1800 can be implemented in a variety of different forms. For example, it can be implemented multiple times as a standard server 1820 or in a group of such servers. In addition, it can be implemented in a personal computer (e.g., laptop computer 1822). It can also be implemented as part of a rack server system 1824. Optionally, components from computing device 1800 can be combined with other components in a mobile device (not shown) (e.g., mobile computing device 1850). Each of such devices can contain one or more of computing device 1800 and mobile computing device 1850, and the entire system can be composed of multiple computing devices that communicate with each other.

[0178] The mobile computing device 1850 includes a processor 1852, a memory 1864, an input / output device (e.g., a display 1854), a communication interface 1866, and a transceiver 1868, among other components. The mobile computing device 1850 may also be provided with a storage device, such as a microdrive or other device, to provide additional storage. Each of the processor 1852, the memory 1864, the display 1854, the communication interface 1866, and the transceiver 1868 are interconnected using various buses, and several of these components may be mounted on a common motherboard or otherwise as appropriate.

[0179] Processor 1852 may execute instructions within mobile computing device 1850, including instructions stored in memory 1864. Processor 1852 may be implemented as a chipset of chips including separate and multiple analog and digital processors. Processor 1852 may, for example, provide coordination of other components of mobile computing device 1850, such as control of a user interface, applications executed by mobile computing device 1850, and wireless communications performed by mobile computing device 1850.

[0180] The processor 1852 can communicate with the user through the control interface 1858 and the display interface 1856 coupled to the display 1854. The display 1854 can be, for example, a TFT (thin film transistor liquid crystal display) display or an OLED (organic light emitting diode) display or other suitable display technology. The display interface 1856 may include appropriate circuits for driving the display 1854 to present graphics and other information to the user. The control interface 1858 can receive commands from the user and convert them for submission to the processor 1852. In addition, the external interface 1862 can provide communication with the processor 1852 to enable near-area communication of the mobile computing device 1850 with other devices. For example, the external interface 1862 can provide wired communication in some implementations, or wireless communication in other implementations, and multiple interfaces can also be used.

[0181] Memory 1864 stores information within the mobile computing device 1850. Memory 1864 may be implemented as one or more of one or more computer-readable media, one or more volatile memory units, or one or more non-volatile memory units. Expansion memory 1874 may also be provided and connected to the mobile computing device 1850 via expansion interface 1872, which may include, for example, a SIMM (Single In-line Memory Module) card interface. Expansion memory 1874 may provide additional storage space for the mobile computing device 1850, or may also store applications or other information for the mobile computing device 1850. In particular, expansion memory 1874 may include instructions to perform or supplement the above-mentioned processes, and may also include security information. Thus, for example, expansion memory 1874 may be provided as a security module for the mobile computing device 1850, and may be programmed with instructions that allow secure use of the mobile computing device 1850. In addition, security applications may be provided through a SIMM card together with additional information, such as placing identification information on the SIMM card in an unbreakable manner.

[0182] As discussed below, the memory may include, for example, flash memory and / or NVRAM (non-volatile random access memory). In some implementations, a computer program product is tangibly embodied in an information carrier. The computer program product includes instructions that, when executed, perform one or more methods, such as those described above. The computer program product may be a computer or machine readable medium, such as the memory 1864, the expansion memory 1874, or a memory on the processor 1852. In some implementations, the computer program product may be received in a propagated signal, such as by the transceiver 1868 or the external interface 1862.

[0183] The mobile computing device 1850 can communicate wirelessly through the communication interface 1866, which may include digital signal processing circuits as necessary. The communication interface 1866 may provide communication under various modes or protocols, such as GSM voice calls (Global System for Mobile Communications), SMS (Short Message Service), EMS (Enhanced Message Service) or MMS messages (Multimedia Message Service), CDMA (Code Division Multiple Access), TDMA (Time Division Multiple Access), PDC (Personal Digital Cellular), WCDMA (Wideband Code Division Multiple Access), CDMA2000 or GPRS (General Packet Radio Service), etc. Such communication may occur, for example, through a transceiver 1868 using radio frequency. In addition, short-range communication may occur, for example, using Bluetooth, WiFi or other such transceivers (not shown). In addition, the GPS (Global Positioning System) receiver module 1870 may provide additional navigation and location-related wireless data to the mobile computing device 1850, which may be used as appropriate by applications running on the mobile computing device 1850.

[0184] The mobile computing device 1850 may also communicate audibly using an audio codec 1860, which may receive verbal information from a user and convert it into usable digital information. The audio codec 1860 may also generate audible sounds for the user, such as through a speaker, such as in a handset of the mobile computing device 1850. Such sounds may include sounds from voice phone calls, may include recorded sounds (e.g., voice messages, music files, etc.), and may also include sounds generated by applications operating on the mobile computing device 1850.

[0185] As shown in the drawings, mobile computing device 1850 can be implemented in many different forms. For example, it can be implemented as a cellular phone 1880. It can also be implemented as part of a smart phone 1882, a personal digital assistant, or other similar mobile devices.

[0186] Various implementations of the systems and techniques described herein can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations may include implementations in one or more computer programs executable and / or interpretable on a programmable system including at least one programmable processor, which may be special purpose or general purpose, coupled to receive data and instructions from and transmit data and instructions to a storage system, at least one input device, and at least one output device.

[0187] These computer programs (also referred to as programs, software, software applications or code) include machine instructions for programmable processors and may be implemented in high-level procedural and / or object-oriented programming languages ​​and / or in assembly / machine languages. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, apparatus and / or device (e.g., disk, optical disk, memory, programmable logic device (PLD)) for providing machine instructions and / or data to a programmable processor, including machine-readable media that receive machine instructions as machine-readable signals. The term "machine-readable signal" refers to any signal for providing machine instructions and / or data to a programmable processor.

[0188] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user, as well as a keyboard and a pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and the input from the user can be received in any form (including sound, voice, or tactile input).

[0189] The systems and techniques described herein may be implemented in a computing system that includes a back-end component (e.g., as a data server) or includes a middleware component (e.g., an application server) or includes a front-end component (e.g., a client computer with a graphical user interface or a web browser through which a user can interact with an implementation of the systems and techniques described herein), or any combination of such back-end, middleware, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), and the Internet.

[0190] A computer system may include clients and servers. Clients and servers are usually remote from each other and generally interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship relative to each other.

[0191] Fig.19 1 is a block diagram of an example system 1900 for collecting environmental data from a number of sleep environments. In system 1900, non-intrusive monitoring of a sleep environment and sleep quality is performed. Physical environmental conditions of the sleep environment, such as sound, noise, light, temperature, humidity, and air quality, are monitored by sensors 1902-1906.

[0192] Sensors 1902-1906 are included in one or more environmental sensing devices installed as standalone devices in the user's bed, bed furniture (e.g., headboard, frame), or sensors 1902-1906 are incorporated into one or more other devices (e.g., incorporated into the user's clock, television, etc.). In some cases, sensors 1902-1906 are configured in multiple devices. For example, the bed can sense ambient noise conditions, while the thermostat can sense ambient temperature conditions. In addition, sensors 1902-1906 can sense the user's presence in bed and user biometrics. These can include presence, movement, and orientation in bed as well as information about breathing, heart activity, user temperature, etc.

[0193] Typically, sensors 1902-1906 can be tuned to be sensitive to phenomena within the same range as humans, and can convert signals from the phenomena into digital data streams that can be transmitted to a storage database 1908 via a network 1910, which can include a local network (e.g., a home Wi-Fi network), the Internet, etc.

[0194] For example, sensors 1902-1906 may sense sound, light, temperature, air quality, and / or other phenomena. Sensors 1902-1906 may create data messages 1912-1916 and send the data messages 1912-1916 to sleep data storage 1908. Sleep data storage 1908 may store data from data messages 1912-1916 in one or more structured data formats for use by other systems. These data streams may include raw streams of sensor readings, processed data streams with aggregated parameters formed from raw sensor data, or other appropriate data formats.

[0195] Controllers 1903 and 1905 may receive and process digital messages 1912-1916. For example, sensors 1902 and 1904 may send raw data streams to controllers 1903 and 1905, and controllers 1903 and 1905 may process these raw data streams into environmental parameters for transmission. Other arrangements are possible, such as where the sensor and controller are a single unit. Controllers 1903 and 1905 may also calculate a sleep score metric based on sensed environmental parameters, user sleep parameters such as restfulness (e.g., duration of sleep with little excessive movement), respiration and cardiac activity, and the like.

[0196] The compilation and transmission of digital data streams 1912 and 1914 can occur continuously or periodically. For example, digital data streams 1912 and 1914 can be created when readings of sensors 1902 and 1904 are obtained, including delays related to software delays and hardware delays. In some examples, digital data streams 1912 and 1914 can be compiled on a periodic basis (e.g., every N minutes, hours, days, etc.). Other transmission schemes are also possible.

[0197] The sleep analyzer 1918 may access the data in the sleep data store 1908 to learn a regression model based on the environmental data. For example, the sleep analyzer 1918 may send one or more queries for data to the sleep data store 1908, and in response, the sleep data store 1908 may in turn collect data that is sent to the sleep analyzer 1918.

[0198] The sleep data store 1908 may store data in a structured format, such as a data table 1909. The data table may be stored on disk in a variety of formats, including but not limited to Extensible Markup Language (XML) format, in a B+ tree, etc. The data table 1909 may allow for fast and efficient searching, insertion, and deletion of data by the sleep data store or other devices in communication with the sleep data store 1908. For example, the sleep analyzer 1918 may send a query in the form of a structured query language to the sleep data store to request or edit data in the data table 1909.

[0199] The sleep analyzer can create a sleep quality regression model from data collected from thousands of sleepers who have sensors (e.g., sensors 1902-1906) in their sleep environment. The model maps environmental parameters to a quality score that reflects the user's sleep quality. For example, the user's bed, wearable device, or sensor 1902 may include pressure sensors, motion sensors, and biometric sensors that track sleep quality, etc. The sleep quality score may also be stored in the sleep data storage area 1908 in association with the user's environmental parameters.

[0200] Fig. 20 1 is a block diagram of an example system 2000 for collecting environmental data from a sleep environment and / or a sleeper in the sleep environment during a number of sleep sessions. In the system 2000, a sensor 1902 senses environmental phenomena for a number of sleep sessions. Data messages 1912, 2002, and 2004 may be sent to a sleep data storage area 1908, and data from the data messages 1912, 2002, and 2004 may be stored in the sleep data storage area 1908. In addition, the data messages 1912, 2002, and 2004 may include other information (e.g., sleep scores, unique identifiers, readings from other sensors (e.g., in-bed information)).

[0201] As will be appreciated, systems 1900 and 2000 can be used together to store data from many environments over time. Over time, this can allow sleep analyzer 1918 to access environmental data and sleep quality scores for many environments.

[0202] Using system 2000, either personalized rules or group-based automated rules can be provided to individual users. For example, when a new user purchases a new bed or a new automated device, the new device can be configured to operate using group-based rules. These group-based rules can be for all users or subgroups (e.g., all users of the same gender, age range, and / or geographic region). Over time, as system 2000 collects information from specific users, system 2000 can transition from providing group-based rules to personalized rules to users.

[0203] Fig.21 21 is a diagram of example data 2100 related to a sleep environment. Data 2100 illustrates the concept of learning the quality of a sleep environment in one dimension (temperature). As will be appreciated, sleep quality can be associated with many dimensions (e.g., temperature, light, sound, etc.).

[0204] As described above, the inputs to create data 2100 can be collected from thousands of sleep environments and sleepers. To simplify this description, the ambient room temperature is considered the only parameter that varies. Each of the thousands of temperature parameters describes the average or prevailing temperature during an individual's sleep session. For temperature readings within a range of possible room temperatures (e.g., 40 to 90 degrees Fahrenheit), the individual's sleep quality score is collected with a sleep monitoring system (e.g., bed, wearable device, medical sensor, other sensor) to form a data set of "sleep quality relative to ambient room temperature" as shown.

[0205] The top panel 2102 shows the distribution of sleep quality scores in a box plot for each temperature value in the range (approximately 1,000 samples). Although sleep quality may vary considerably depending on other factors that affect sleep quality, the median sleep quality score shows a trend with respect to temperature. The curve in panel 2102 is formed by connecting the median sleep quality scores. For example, the curve can be created by finding the best fit curve of the readings. The curve represents the change in the sleep quality metric based on the average room temperature.

[0206] In panel 2104, the curve is rescaled in the range of [0,100] for use in a score-based regression model. Here, the height of the curve is mapped to an environmental quality metric, so that temperatures that have been shown in the past to be associated with high quality sleep are associated with high environmental quality metric values. Thus, the effects of ambient temperature can be included in such a regression model. Although temperature is shown here for simplicity, it is to be understood that all or some of the other environmental parameters can be used to generate multidimensional data.

[0207] Fig. 22 2 is a diagram of an example system 2200 for adjusting a sleep environment. Sensors 1902 provide data to a group regression model 2202 (e.g., sleep analyzer 1918) running on one or more computer systems (not shown for clarity) to generate an environment quality score 2204. Group regression model 2202 is the model that generates environment quality score 2204.

[0208] The environment quality score 2204 may be provided to the user so that the user can better understand their sleep experience. For example, the display 2210 may be displayed to the user on a mobile computing device, a desktop computing device, etc. The display 2210 may show the user their sleep quality score and / or their environment quality score 2204. In some configurations, when a low environment quality score 2204 may affect the user's sleep (and thus the sleep quality score), the display 2210 may include an element 2212 with a message to the user. The message may include easy to understand instructions that will help the user understand why their sleep quality is being affected by the environment.

[0209] In this example, the noise component of their environment quality score 2204 is low (caused by high levels of noise), which results in both a low environment quality score 2204 and low sleep quality. Thus, a message is being displayed suggesting that the user may be able to improve their sleep quality by improving their noise environment. Different and appropriate messages may also be displayed in situations where other factors reduce the user's sleep quality.

[0210] The sensors 1904 are used to provide data to a personalized regression model 2206 (eg, sleep analyzer 1918 ) running on one or more computer systems (not shown for clarity) to generate an environment quality score 2208 .

[0211] Unlike the group regression model 2202, the personalized regression model 2206 may be trained specifically or primarily based on data collected from the sensor 1904 and possibly other sensors for one user and their environment. Thus, the personalized regression model 2206 may be more accurate for any particular user, especially if their particular environment, physiology, or sleep situation differs from the larger group in terms of how it affects sleep quality or sensing. For example, it may be the case that a pregnant user, a teenage user, an elderly user, an overweight user, or an underweight user may have a different sleep physiology than the general population, and therefore the personalized model 2206 may be beneficial.

[0212] The environment quality score 2208 may be used in a display 2210. Additionally, the environment quality score may be used by a home or bed automation device 2214 to adjust the user's environment through home automation. For example, in addition to or in lieu of notifying the user that they can block out noise in their environment, the device 2214 may actuate a noise masking device while the user is sleeping in order to improve the user's sleeping environment without requiring specific input from the user.

[0213] Fig.23 23 is a diagram of an example system 2300 for automatic adjustment of a sleep environment. Target environment parameters 2302 are accessed by the sleep and environment analyzer 1918, for example from the sleep data storage area 1908. These target environment parameters 2302 can be based on a population-based analysis or a personalized analysis of sleep quality scores derived from environmental parameters, and these target environment parameters 2302 are environmental parameters associated with maximum sleep quality scores. The process for determining target environment parameters will be described in more detail below.

[0214] The sleep analyzer may use the target environment parameters 2302 and the environment quality score 2208 to generate instructions for the home or bed automation device 2214 that will cause the device 2214 to adjust the user's environment to improve their sleeping conditions.

[0215] Fig.24 2400 is a diagram of an example process 2400 that can be used to calculate data related to a sleep environment. The process 2400 can be performed by, for example, the sleep analyzer 1918. Therefore, the example will be described with reference to the above elements. However, another system or combination of systems can be used to perform the process 2400 or a similar process.

[0216] The environment quality score can be created by a function using the measured environment parameters and the target environment parameters as input. For each parameter type - here sound, light, temperature and air quality, the relative distance values ​​are calculated, weighted and combined to generate a single environment quality score. However, as will be appreciated, the weighted distances can also be stored individually and used in the process of decision making by the automatic process, as well as for use in adjusting the sleep environment.

[0217] In this example, the target parameter can be found based on a comparison of the environmental parameter and the sleep quality score. As shown above, this relationship can create a unimodal distribution in which one value of the environmental parameter is associated with the best quality sleep. This value, the highest point on the curve, can be used as the target parameter value for the environmental parameter.

[0218] The measured parameter can be an instantaneous sensor reading or an aggregated sensor reading of the user's sleeping environment. For example, an instantaneous reading can be a sound, light, temperature, or air quality reading at a single moment in time. An aggregate value can be a single value representing multiple instantaneous readings. For example, a simple average of all temperature readings while the user is sleeping can be used for TP (measured temperature parameter).

[0219] The weighting factor may be a number within a predetermined range (e.g., [0, 1] or [0, 100]) that is used to weight the various parameters according to how much the environmental phenomenon affects the user's sleep quality score. For example, if sound is found to have a greater impact than light, then the weight value w for sound is 1 Can be set to a weight value w for the light 2 Larger value.

[0220] The distance calculation for each parameter can be any distance function that can determine the difference or similarity between values. An example distance function is the Euclidean distance function 2402. The Euclidean distance function is a function that can find the distance value between two vectors. Other types of distance calculations that can be used include, but are not limited to, Canberra distance, algebraic distance, or energy distance.

[0221] The total distance between the measured parameters and the target parameters represents the overall difference between the ideal environment and the target environment. This distance can be used to calculate an environmental metric. For example, starting with a value of 100, the distance value can be subtracted to generate an environmental metric (e.g., environmental quality score 2204). This technique can result in a single unified number that easily conveys the overall impact of the environment on the user's sleep.

[0222] Each weighted distance may also be stored along with the overall distance. These values ​​may be used to provide further context about the impact of the environment on sleep. For example, in element 2212, messages may be selected based on the weighted distances that have the greatest negative impact on the user's sleep.

[0223] Fig.25 25 is a swim lane diagram of an example process 2500 for modifying a sleep environment. The process 2500 can be used by the above system or a combination. For clarity, the process 2500 will be described with reference to a specific set of components 2502-2508, where the standalone sensor 2502 is incorporated into a home's thermostat, the sensor cluster 2504 is incorporated into a bedside device, and the automation controller 2506 and computer system 2508 are incorporated into the user's automation hub.

[0224] However, other components and arrangements of components may be used in other examples. For example, in another configuration, the bed may incorporate both the sensor cluster 2504 and the automation controller 2506. In another configuration, the computer system 2508 may be a cloud service reachable via the Internet. In another configuration, the automation controller 2506 may be a voice-activated controller that may control home automation and provide auditory access to cloud applications. In yet another configuration, elements 2502-2508 are all integrated into the user's bed. In yet other configurations, other sensor configurations are also possible, including independent sensor arrays, multiple sensor clusters, no sensor clusters, no independent sensors, etc.

[0225] Individual sensors 2502 sense environmental phenomena 2510, and sensor cluster 2504 senses environmental phenomena 2512. For example, the thermostat in a user's home may be nominally set to 68 degrees Fahrenheit, and when the user is asleep, the sensor in the thermostat may sense that the ambient temperature in the home is 68.3 degrees Fahrenheit. At the same time, the bedside device may sense that the bed the user is in is warmed to 85.0 degrees Fahrenheit due to the user's body heat. The bedside device may also sense that the ambient lighting in the room is 0.5 cd, and that the firmness of the bed is currently set to 66 on a scale of 0 to 100.

[0226] For example, while the user is sleeping in a sleep session, sensors 2502 and 2504 can sense phenomena. In some cases, the sensing can be periodic or continuous while the user is sleeping. For example, sensors 2502 and 2504 can sense environmental phenomena and send data streams containing digital parameters of the phenomena to automation controller 2506. Automation controller 2506 can use these data streams or other data to determine when the user is asleep, and in response to a determination that the user is asleep or in bed, begin recording the sensed parameters for use in improving the user's sleeping environment while the user is sleeping in the sleep session (i.e., before the user wakes up) or in future sleep sessions.

[0227] Sensors 2502 and 2504 transmit data messages 2514 with the sensed parameters. For example, automation controller 2506 may receive these data streams, aggregate or collate data from the time period when the user was sleeping, and transmit the data to computer system 2508. The data may be transmitted over a period of time (e.g., the last 5 minutes or the last hour), for example, as an event changes (e.g., in response to detecting a parameter changing by a threshold amount) or by another suitable scheme.

[0228] The computer system 2508 receives the data message 2516. For example, the automation controller 2506 of the automation hub may store the sensed parameters in a memory of the automation hub and provide a message to the computer system 2508 of the automation hub that the sensed parameters are stored and available for access.

[0229] The computer system 2508 determines, based on the sensed parameters, an indication 2518 that the sensed parameters indicate a low quality sleep environment. In some configurations, the computer system 2508 may apply the sensed parameters to one or more classifiers that use the sensed parameters as input and use an indication of low quality sleep or high quality sleep as output.

[0230] For example, the computer system 2508 can be configured to determine a target parameter for each sensed parameter; determine a distance-from-target value for each sensed parameter; and combine the distance-from-target values ​​to generate an environmental quality score. In this way, for each sensed parameter, the classifier can determine how far or how appropriate the sensed parameter is from the ideal value. A larger value will indicate that adjusting this environmental phenomenon will be expected to produce a larger improvement in sleep quality, while a lower value will indicate that adjusting this environmental phenomenon will be expected to produce a smaller improvement in sleep quality. Therefore, a priority list sorted by the size of the distance-from-target value will provide an ordered list of environmental phenomena to be adjusted from the most influential to the least influential.

[0231] To combine the distance-to-target values, the computer system 2508 may be configured to create a weighted distance by weighting each distance-to-target value with a weight value representing the effect of the corresponding sensed parameter on sleep quality. For example, a classifier may be created using a process that determines how important any given environmental phenomenon is. For example, while both the temperature of the bed and the ambient room temperature may affect sleep quality, given the same distance-to-target value, generation of the classifier may determine that one of them is twice as influential as the other. In this case, the more influential phenomenon may have a weight that is twice as large as the weight of the less influential phenomenon.

[0232] To determine, based on the sensed parameters, an indication that the sensed parameters are indicative of a low quality sleep environment, the computer system is further configured to determine that the environment quality score is less than a threshold value.

[0233] To combine the distance-to-target values, the computer system 2508 may be configured to add the distance-to-target values ​​together. For example, the computer system 2508 may add each weighted or unweighted distance-to-target value together to create an environmental quality metric. In some cases, the value may be scaled, rounded, truncated, etc. to ensure that it conforms to a specific format.

[0234] To combine the distance-to-target values, the computer system 2508 may be configured to subtract the sum of the distance-to-target values ​​from the maximum value. For example, for a maximum value of 100, each weighted or unweighted distance-to-target value may be subtracted. In some cases, the value may be scaled, rounded, truncated, etc. to ensure that it conforms to a particular format.

[0235] The computer system 2508 sends instructions to adjust the environment to the automation controller 2506. For example, the computer system 2508 may select the first item in the ordered list of environmental phenomena to adjust, and generate instructions to change the environmental phenomenon from a current state to a target state identified as providing an ideal sleep environment for the phenomenon. The computer system 2508 may send the instructions to the automation controller 2506, may store the instructions to a memory of the automation hub, where the automation controller 2506 listens for new storage events, etc.

[0236] The automation controller 2506 adjusts the environment while the user is sleeping in a sleep session, and there is no specific input from the user when adjusting the environment 2522. In response to receiving the instruction, the automation controller 2506 can generate one or more instructions for one or more peripheral devices that affect the user's environment when actuated. For example, in order to reduce the temperature of the bed in response to an instruction to set the bed temperature to a target value, the automation controller 2506 can determine the change requirement (e.g., the relative change in temperature required, the absolute value of energy to energize a heater or cooling engine), and can cause the peripheral device to be actuated in this manner.

[0237] This can be done without special input from the user when adjusting. For example, this can be ended (be down) without a touch screen, or a button, or a user input to approve the adjustment to stop the operation. Because the sleeping user cannot approve the adjustment, the user's environment can be improved when the user is asleep. In order to ensure that process 2500 operates according to the user's wishes, the approval input from the user can be requested and received to authorize these kinds of automated adjustments to the sleeping environment. For example, when the user is setting up their home automation, the graphical screen can notify the user that there is an option for environmental improvement when the user is sleeping. Other relevant information about this feature can be provided to the user to enable them to make an informed choice. If the user does want the feature to be enabled, a user input (such as a button press, a click on the screen) on the approval interface element can be received to receive this user approval.

[0238] Using process 2500, changes can be made to environmental factors that can be completed or designed to improve the user's sleep quality. These changes are made by adjusting the environment to more closely resemble target values ​​for various environmental phenomena. These target values ​​can be determined according to one or more processes. Two possible processes are described, but other processes are also possible. Fig.26 and Fig. 27 2600 and 2700 for determining target environment parameters. Processes 2600 and 2700 may be used alternatively, together, in succession, etc. by a system that is developing target environment parameters. For example, process 2600 may be used to develop personalized target parameters, while process 2700 may be used to develop group target parameters. Process 2700 may be used to provide an initial baseline or default target parameter, while process 2600 may be used to learn personalized target parameters for an individual over time, with group parameters being used until personalized target parameters are available.

[0239] In process 2600, sensors 2502 and 2504 sense historical phenomena 2610 and 2612. That is, process 2600 and / or 2700 may be used prior to process 2500, and the historical phenomena represent phenomena that occurred in a sleep session prior to the sleep session described in process 2500. It would be possible to consider the historical phenomena as training data for the sleep sessions of process 2500. However, it is to be understood that processes 2500, 2600, and / or 2700 may all be run based on the same sensor readings, resulting in both training and automated control based on the same sensor readings in the same sleep session.

[0240] For example, the thermostat in the user's home may be nominally set to 68 degrees Fahrenheit, and a sensor in the thermostat may sense that the ambient temperature in the home is 68.3 degrees Fahrenheit while the user is asleep. At the same time, the bedside device may sense that the bed the user is in is warmed to 85.0 degrees Fahrenheit due to the user's body heat. The bedside device may also sense that the ambient lighting in the room is 0.5 cd and that the firmness of the bed is currently set to 66 on a scale of 0 to 100.

[0241] Sensors 2502 and 2504 transmit data messages 2614 with the sensed parameters. For example, automation controller 2506 may receive these data streams, aggregate or collate data from the time period when the user was sleeping, and transmit the data to computer system 2508. The data may be transmitted over a period of time (e.g., the last 5 minutes or the last hour), for example, as an event changes (e.g., in response to detecting a parameter changing a threshold) or by another suitable scheme.

[0242] The computer system 2508 receives the data message 2616. For example, the automation controller 2506 of the automation hub may store the sensed parameters in a memory of the automation hub and provide a message to the computer system 2508 of the automation hub that the sensed parameters are stored and available for access.

[0243] The computer system 2508 may determine personalized target parameters 2618 for the user. For example, historical sleep quality values ​​may be retrieved from memory for each night's sleep of a single user in a sensed environment. For example, as described above, the values ​​of the sensed parameters may be collected and used to identify the target parameters.

[0244] In process 2700, sensors 2702 and 2704 sense historical phenomena 2710 and 2712. That is, processes 2600 and / or 2700 may be used prior to process 2500, and the historical phenomena represent phenomena that occurred in a sleep session prior to the sleep session described in process 2500. The historical phenomena may be considered training data for sleep sessions for process 2500. However, it is to be understood that processes 2500, 2600, and / or 2700 may all be run based on the same sensor readings, resulting in both training and automated control based on the same sensor readings in the same sleep session.

[0245] For example, the thermostat in many users' homes may be nominally set to various temperatures (e.g., 65-72 degrees Fahrenheit), and a sensor in the thermostat may sense the ambient temperature of the home while the user is asleep. At the same time, the bedside device may sense that the bed the user is in is warming due to the user's body heat. The bedside device may also sense the ambient lighting in the room, and that the firmness of the bed is currently set to various values ​​on a scale of 0 to 100.

[0246] Sensors 2702 and 2704 transmit data messages 2714 with the sensed parameters. For example, automation controller 2706 may receive these data streams, aggregate or collate data from the time period when the user was sleeping, and transmit the data to computer system 2508. The data may be transmitted over a period of time (e.g., the last 5 minutes or the last hour), for example, as an event changes (e.g., in response to detecting a parameter changing by a threshold amount) or by another suitable scheme.

[0247] The computer system 2508 receives the data message 2716. For example, the automation controller 2706 of the automation hub may store the sensed parameters in a memory of the automation hub and provide a message to the computer system 2508 of the automation hub that the sensed parameters are stored and available for access.

[0248] The computer system 2508 can determine a group target parameter 2718 for the user. For example, for each user's sleep each night in the sensed environment, a historical sleep quality value can be called from the memory. For example, as previously described, the values ​​of the sensed parameters can be collected and used to identify the target parameters for the group. In some cases, this group includes all users. In some cases, this group is a subgroup of all users. For example, users can be grouped by age, gender, weight, BMI (body mass index), sleep habits, etc.

[0249] Aspects of the invention may be implemented in one or more of the following embodiments.

[0250] 1) A system comprising:

[0251] A sensor system, the sensor system being configured to:

[0252] sensing a plurality of environmental phenomena while a user of the bed is sleeping in a sleep session;

[0253] sending at least one data message to a computer system, said data message having a sensed parameter resulting from said sensing of said environmental phenomenon;

[0254] The computer system is configured to:

[0255] receiving the data message;

[0256] determining, based on the sensed parameters, an indication that the sensed parameters are indicative of a low quality sleep environment; and

[0257] In response to determining that the sensed parameter is indicative of a low quality sleep environment, sending instructions to a controller system to adjust the environment; and

[0258] The controller system is configured to:

[0259] receiving the instruction to adjust the environment; and

[0260] In response to receiving the instruction to adjust the environment, the environment is adjusted while the user is sleeping in the sleep session, wherein there is no specific input from the user at the time of the adjustment of the environment.

[0261] 2) The system according to 1), wherein, in order to determine, based on the sensed parameters, that the sensed parameters indicate an indication of a low-quality sleep environment, the computer system is further configured to:

[0262] For each sensed parameter, determining a target parameter;

[0263] For each sensed parameter, determining a distance to target value; and

[0264] The distance-to-target values ​​are combined to generate an environmental quality score.

[0265] 3) The system according to 2), wherein, in order to combine the distance-to-target values ​​to generate an environmental quality score, the computer system is further configured to:

[0266] The weighted distance is created by weighting each distance-to-target value by a weight value representing the impact of the corresponding sensed parameter on sleep quality.

[0267] 4) The system according to 2), wherein, in order to combine the distance-to-target values ​​to generate an environmental quality score, the computer system is further configured to:

[0268] The distance-to-target values ​​are added together.

[0269] 5) The system according to 2), wherein, in order to combine the distance-to-target values ​​to generate an environmental quality score, the computer system is further configured to:

[0270] The sum of the distance-to-target values ​​is subtracted from the maximum value.

[0271] 6) The system according to 2), wherein, in order to determine, based on the sensed parameters, that the sensed parameters indicate an indication of a low-quality sleep environment, the computer system is further configured to:

[0272] It is determined that the environmental quality score is less than a threshold.

[0273] 7) The system according to 1), wherein the environmental phenomenon includes at least one of the group consisting of sound, light, temperature, humidity and air quality.

[0274] 8) A system comprising:

[0275] A sensor system, the sensor system being configured to:

[0276] sensing a plurality of historical environmental phenomena while a particular user of the bed was sleeping during a historical sleep session;

[0277] For each sensed historical environmental phenomenon, sending a corresponding historical data message having the sensed historical parameters to the computer system;

[0278] The computer system is configured to:

[0279] receiving the historical data message; and

[0280] determining a target parameter for the particular user and for the plurality of historical sleep sessions and for each type of the sensed historical parameters;

[0281] Wherein, for the current sleep session, the sensor system is further configured to:

[0282] sensing a plurality of environmental phenomena while a user of the bed is sleeping in a sleep session;

[0283] sending at least one data message to a computer system, said data message having a sensed parameter resulting from said sensing of said environmental phenomenon;

[0284] Wherein, for the current sleep session, the computer system is further configured to:

[0285] receiving the data message;

[0286] determining, based on the sensed parameters, an indication that the sensed parameters are indicative of a low quality sleep environment; and

[0287] In response to determining that the sensed parameter is indicative of a low quality sleep environment, sending instructions to a controller system to adjust the environment; and

[0288] The controller system is configured to:

[0289] receiving the instruction to adjust the environment; and

[0290] In response to receiving the instruction to adjust the environment, the environment is adjusted while the user is sleeping in the sleep session, wherein there is no specific input from the user at the time of the adjustment of the environment.

[0291] 9) A system comprising:

[0292] A plurality of sensor systems, each of the sensor systems being configured to:

[0293] sensing a plurality of historical environmental phenomena while an associated user of the associated bed slept during the plurality of historical sleep sessions;

[0294] For each sensed historical environmental phenomenon, sending a corresponding data message having the sensed historical parameters to the computer system;

[0295] The computer system is configured to:

[0296] receiving the historical data message; and

[0297] determining a target parameter for a plurality of users and for the plurality of historical sleep sessions and for each type of the sensed parameter;

[0298] Wherein, for the current sleep session, the sensor system is further configured to:

[0299] Wherein, for the current sleep session, the sensor system is further configured to:

[0300] sensing a plurality of environmental phenomena while a user of the bed is sleeping in a sleep session;

[0301] sending at least one data message to a computer system, said data message having a sensed parameter resulting from said sensing of said environmental phenomenon;

[0302] Wherein, for the current sleep session, the computer system is further configured to:

[0303] receiving the data message;

[0304] determining, based on the sensed parameters, an indication that the sensed parameters are indicative of a low quality sleep environment; and

[0305] In response to determining that the sensed parameter is indicative of a low quality sleep environment, sending instructions to a controller system to adjust the environment; and

[0306] The controller system is configured to:

[0307] receiving the instruction to adjust the environment; and

[0308] In response to receiving the instruction to adjust the environment, the environment is adjusted while the user is sleeping in the sleep session, wherein there is no specific input from the user at the time of the adjustment of the environment.

[0309] 10) A system comprising a controller, the controller being configured to:

[0310] determining a currently sensed parameter of a current environmental phenomenon and a series of historical parameters of historical environmental phenomena, each of the historical parameters being associated with a sleep quality score; and

[0311] In response to determining that the sleep quality score associated with the matched historical parameters is a low sleep quality score, adjusting the environment of the current environmental phenomenon.

Claims

1. A system, include: A sensor system, the sensor system being configured to: sensing a plurality of environmental phenomena while a user of the bed is sleeping in a sleep session; sending at least one data message to a computer system, said data message having a sensed parameter resulting from said sensing of said environmental phenomenon; The computer system is configured to: receiving the data message; Determining, from the sensed parameters, an indication that the sensed parameters are indicative of a low-quality sleep environment based on a model defining relationships between historical environmental phenomena and historical sleep sessions, wherein the model is created using a regression analysis of historical environmental phenomena present around the user while the user was in the historical sleep sessions, determining that the sensed parameters are indicative of an indication of a low-quality sleep environment comprises the following operations: for each sensed parameter, determining a target parameter using the model; for each sensed parameter, determining a distance value from a target parameter; and subtracting a sum of the distance values ​​from the target parameter from a maximum value to represent an overall quality of the environment taking into account each of the plurality of sensed environmental phenomena based on the model, wherein the maximum value represents a combination of historical phenomena when maximum sleep quality was directly measured in the historical sleep sessions; and in response to determining that the sensed parameter indicates an indication of a low-quality sleep environment, sending an instruction to a controller system to adjust the environment; and The controller system is configured to: receiving the instruction to adjust the environment; and In response to receiving the instruction to adjust the environment, the environment is adjusted while the user is sleeping in the sleep session, wherein there is no specific input from the user at the time of the adjustment of the environment.

2. The system according to claim 1, in, In order to determine, based on the sensed parameters, an indication that the sensed parameters indicate a low-quality sleeping environment, the computer system is further configured to: The distance to target parameter values ​​are combined to generate an environmental quality score.

3. The system according to claim 2, in, To combine the distance values ​​from the target parameter to generate an environmental quality score, the computer system is further configured to: The weighted distance is created by weighting each distance value to the target parameter by a weight value representing the impact of the corresponding sensed parameter on sleep quality.

4. The system according to claim 2, in, In order to determine, based on the sensed parameters, an indication that the sensed parameters indicate a low-quality sleeping environment, the computer system is further configured to: It is determined that the environmental quality score is less than a threshold.

5. The system according to claim 1, in, The environmental phenomenon includes at least one of the group consisting of sound, light, temperature, humidity and air quality.

6. The system according to claim 1, in, The regression analysis is a linear regression analysis.

7. The system according to claim 1, in, The regression analysis is a machine learning analysis.

8. The system according to claim 1, in, The model defining the relationship between historical environmental phenomena and historical sleep sessions is created using a regression analysis of historical environmental phenomena that were present around other users other than the user when the other users were in the historical sleep sessions.

9. The system according to claim 8, in, The regression analysis is a linear regression analysis.

10. The system according to claim 8, in, The regression analysis is a machine learning analysis.

11. The system according to claim 1, in, The maximum value is 100 in the model.

12. The system according to claim 1, in, The historical sleep session is prior to the sleep session.

13. A computer system comprising a memory and one or more processors, the computer system being configured to: receiving a data message having sensed parameters resulting from sensing of a plurality of environmental phenomena while a user of the bed is sleeping in a sleep session; Determining, from the sensed parameters, an indication that the sensed parameters are indicative of a low-quality sleep environment based on a model defining relationships between historical environmental phenomena and historical sleep sessions, wherein the model is created using a regression analysis of historical environmental phenomena present around the user while the user was in the historical sleep sessions, determining that the sensed parameters are indicative of an indication of a low-quality sleep environment comprises the following operations: for each sensed parameter, determining a target parameter using the model; for each sensed parameter, determining a distance value to a target parameter; and subtracting the sum of the distance values ​​to the target parameter from a maximum value to represent an overall quality of the environment taking into account each of the plurality of sensed environmental phenomena based on the model, wherein the maximum value represents a combination of historical phenomena when a maximum sleep quality was directly measured in the historical sleep sessions; and In response to determining that the sensed parameter is indicative of a low quality sleep environment, instructions to adjust the environment are sent to a controller system configured to receive the instructions to adjust the environment.

14. The computer system according to claim 13, in, The regression analysis is a linear regression analysis.

15. The computer system according to claim 13, in, The regression analysis is a machine learning analysis.

16. The computer system according to claim 13, in, The model defining the relationship between historical environmental phenomena and historical sleep sessions is created using a regression analysis of historical environmental phenomena that were present around other users other than the user when the other users were in the historical sleep sessions.

17. The computer system according to claim 16, in, The regression analysis is a linear regression analysis.

18. The computer system according to claim 16, in, The regression analysis is a machine learning analysis.